processedRule) === -1) { excludeRules.push(processedRule); } } } else { const escaped = _ProjectService.escapeFilenameForRegex(root); if (excludeRules.indexOf(escaped) < 0) { excludeRules.push(escaped); } } } } } const excludeRegexes = excludeRules.map((e) => new RegExp(e, "i")); const filesToKeep = []; for (let i = 0; i < proj.rootFiles.length; i++) { if (excludeRegexes.some((re) => re.test(normalizedNames[i]))) { excludedFiles.push(normalizedNames[i]); } else { let exclude = false; if (typeAcquisition.enable) { const baseName = getBaseFileName(toFileNameLowerCase(normalizedNames[i])); if (fileExtensionIs(baseName, "js")) { const inferredTypingName = removeFileExtension(baseName); const cleanedTypingName = removeMinAndVersionNumbers(inferredTypingName); const typeName = this.legacySafelist.get(cleanedTypingName); if (typeName !== void 0) { this.logger.info(`Excluded '${normalizedNames[i]}' because it matched ${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]); } } } } proj.rootFiles = filesToKeep; return excludedFiles; } openExternalProject(proj) { 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((f) => f.fileName)); } const excludedFiles = this.applySafeList(proj); let tsConfigFiles; const rootFiles = []; for (const file of proj.rootFiles) { const normalized = toNormalizedPath(file.fileName); if (getBaseConfigFileName(normalized)) { if (this.serverMode === 0 /* Semantic */ && this.host.fileExists(normalized)) { (tsConfigFiles || (tsConfigFiles = [])).push(normalized); } } else { rootFiles.push(file); } } if (tsConfigFiles) { tsConfigFiles.sort(); } const externalProject = this.findExternalProjectByProjectName(proj.projectFileName); let exisingConfigFiles; if (externalProject) { externalProject.excludedFiles = excludedFiles; if (!tsConfigFiles) { const compilerOptions = convertCompilerOptions(proj.options); const watchOptionsAndErrors = convertWatchOptions(proj.options, externalProject.getCurrentDirectory()); const 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 { const oldConfigFiles = this.externalProjectToConfiguredProjectMap.get(proj.projectFileName); let iNew = 0; let iOld = 0; while (iNew < tsConfigFiles.length && iOld < oldConfigFiles.length) { const newConfig = tsConfigFiles[iNew]; const oldConfig = oldConfigFiles[iOld]; if (oldConfig < newConfig) { this.closeConfiguredProjectReferencedFromExternalProject(oldConfig); iOld++; } else if (oldConfig > newConfig) { iNew++; } else { (exisingConfigFiles || (exisingConfigFiles = [])).push(oldConfig); iOld++; iNew++; } } for (let i = iOld; i < oldConfigFiles.length; i++) { this.closeConfiguredProjectReferencedFromExternalProject(oldConfigFiles[i]); } } } if (tsConfigFiles) { this.externalProjectToConfiguredProjectMap.set(proj.projectFileName, tsConfigFiles); for (const tsconfigFile of tsConfigFiles) { let project = this.findConfiguredProjectByProjectName(tsconfigFile); if (!project) { project = this.getHostPreferences().lazyConfiguredProjectsFromExternalProject ? this.createConfiguredProjectWithDelayLoad(tsconfigFile, `Creating configured project in external project: ${proj.projectFileName}`) : this.createLoadAndUpdateConfiguredProject(tsconfigFile, `Creating configured project in external project: ${proj.projectFileName}`); } if (project && !contains(exisingConfigFiles, tsconfigFile)) { project.addExternalProjectReference(); } } } else { this.externalProjectToConfiguredProjectMap.delete(proj.projectFileName); const project = this.createExternalProject(proj.projectFileName, rootFiles, proj.options, proj.typeAcquisition, excludedFiles); project.updateGraph(); } } hasDeferredExtension() { for (const extension of this.hostConfiguration.extraFileExtensions) { if (extension.scriptKind === 7 /* Deferred */) { return true; } } return false; } /** * Performs the initial steps of enabling a plugin by finding and instantiating the module for a plugin either asynchronously or synchronously * @internal */ requestEnablePlugin(project, pluginConfigEntry, searchPaths) { 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 ${pluginConfigEntry.name} from candidate paths: ${searchPaths.join(",")}`); if (!pluginConfigEntry.name || parsePackageName(pluginConfigEntry.name).rest) { this.logger.info(`Skipped loading plugin ${pluginConfigEntry.name || JSON.stringify(pluginConfigEntry)} because only package name is allowed plugin name`); return; } if (this.host.importPlugin) { const importPromise = Project3.importServicePluginAsync( pluginConfigEntry, searchPaths, this.host, (s) => this.logger.info(s) ); this.pendingPluginEnablements ?? (this.pendingPluginEnablements = /* @__PURE__ */ new Map()); let 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, (s) => this.logger.info(s) )); } /** * Performs the remaining steps of enabling a plugin after its module has been instantiated. * @internal */ endEnablePlugin(project, { pluginConfigEntry, resolvedModule, errorLogs }) { var _a; if (resolvedModule) { const configurationOverride = (_a = this.currentPluginConfigOverrides) == null ? void 0 : _a.get(pluginConfigEntry.name); if (configurationOverride) { const pluginName = pluginConfigEntry.name; pluginConfigEntry = configurationOverride; pluginConfigEntry.name = pluginName; } project.enableProxy(resolvedModule, pluginConfigEntry); } else { forEach(errorLogs, (message) => this.logger.info(message)); this.logger.info(`Couldn't find ${pluginConfigEntry.name}`); } } /** @internal */ hasNewPluginEnablementRequests() { return !!this.pendingPluginEnablements; } /** @internal */ hasPendingPluginEnablements() { return !!this.currentPluginEnablementPromise; } /** * Waits for any ongoing plugin enablement requests to complete. * * @internal */ async waitForPendingPlugins() { while (this.currentPluginEnablementPromise) { await this.currentPluginEnablementPromise; } } /** * Starts enabling any requested plugins without waiting for the result. * * @internal */ enableRequestedPlugins() { if (this.pendingPluginEnablements) { void this.enableRequestedPluginsAsync(); } } async enableRequestedPluginsAsync() { if (this.currentPluginEnablementPromise) { await this.waitForPendingPlugins(); } if (!this.pendingPluginEnablements) { return; } const entries = arrayFrom(this.pendingPluginEnablements.entries()); this.pendingPluginEnablements = void 0; this.currentPluginEnablementPromise = this.enableRequestedPluginsWorker(entries); await this.currentPluginEnablementPromise; } async enableRequestedPluginsWorker(pendingPlugins) { Debug.assert(this.currentPluginEnablementPromise === void 0); await Promise.all(map(pendingPlugins, ([project, promises]) => this.enableRequestedPluginsForProjectAsync(project, promises))); this.currentPluginEnablementPromise = void 0; this.sendProjectsUpdatedInBackgroundEvent(); } async enableRequestedPluginsForProjectAsync(project, promises) { const results = await Promise.all(promises); if (project.isClosed()) { return; } for (const result of results) { this.endEnablePlugin(project, result); } this.delayUpdateProjectGraph(project); } configurePlugin(args) { this.forEachEnabledProject((project) => project.onPluginConfigurationChanged(args.pluginName, args.configuration)); this.currentPluginConfigOverrides = this.currentPluginConfigOverrides || /* @__PURE__ */ new Map(); this.currentPluginConfigOverrides.set(args.pluginName, args.configuration); } /** @internal */ getPackageJsonsVisibleToFile(fileName, rootDir) { const packageJsonCache = this.packageJsonCache; const rootPath = rootDir && this.toPath(rootDir); const filePath = this.toPath(fileName); const result = []; const processDirectory = (directory) => { switch (packageJsonCache.directoryHasPackageJson(directory)) { case 3 /* Maybe */: packageJsonCache.searchDirectoryAndAncestors(directory); return processDirectory(directory); case -1 /* True */: const packageJsonFileName = combinePaths(directory, "package.json"); this.watchPackageJsonFile(packageJsonFileName); const info = packageJsonCache.getInDirectory(directory); if (info) result.push(info); } if (rootPath && rootPath === directory) { return true; } }; forEachAncestorDirectory(getDirectoryPath(filePath), processDirectory); return result; } /** @internal */ getNearestAncestorDirectoryWithPackageJson(fileName) { return forEachAncestorDirectory(fileName, (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 */ watchPackageJsonFile(path) { const watchers = this.packageJsonFilesMap || (this.packageJsonFilesMap = /* @__PURE__ */ new Map()); if (!watchers.has(path)) { this.invalidateProjectPackageJson(path); watchers.set(path, this.watchFactory.watchFile( path, (fileName, eventKind) => { const 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 */ onAddPackageJson(path) { this.packageJsonCache.addOrUpdate(path); this.watchPackageJsonFile(path); } /** @internal */ includePackageJsonAutoImports() { switch (this.hostConfiguration.preferences.includePackageJsonAutoImports) { case "on": return 1 /* On */; case "off": return 0 /* Off */; default: return 2 /* Auto */; } } /** @internal */ invalidateProjectPackageJson(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 */ getIncompleteCompletionsCache() { return this.incompleteCompletionsCache || (this.incompleteCompletionsCache = createIncompleteCompletionsCache()); } }; ProjectService3 = _ProjectService; /** Makes a filename safe to insert in a RegExp */ ProjectService3.filenameEscapeRegexp = /[-\/\\^$*+?.()|[\]{}]/g; } }); // src/server/moduleSpecifierCache.ts function createModuleSpecifierCache(host) { let containedNodeModulesWatchers; let cache; let currentKey; const result = { get(fromFileName, toFileName2, preferences, options) { if (!cache || currentKey !== key(fromFileName, preferences, options)) return void 0; return cache.get(toFileName2); }, set(fromFileName, toFileName2, preferences, options, modulePaths, moduleSpecifiers) { ensureCache(fromFileName, preferences, options).set(toFileName2, createInfo( modulePaths, moduleSpecifiers, /*isBlockedByPackageJsonDependencies*/ false )); if (moduleSpecifiers) { for (const p of modulePaths) { if (p.isInNodeModules) { const 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) ); } } } } }, setModulePaths(fromFileName, toFileName2, preferences, options, modulePaths) { const cache2 = ensureCache(fromFileName, preferences, options); const info = cache2.get(toFileName2); if (info) { info.modulePaths = modulePaths; } else { cache2.set(toFileName2, createInfo( modulePaths, /*moduleSpecifiers*/ void 0, /*isBlockedByPackageJsonDependencies*/ void 0 )); } }, setBlockedByPackageJsonDependencies(fromFileName, toFileName2, preferences, options, isBlockedByPackageJsonDependencies) { const cache2 = ensureCache(fromFileName, preferences, options); const info = cache2.get(toFileName2); if (info) { info.isBlockedByPackageJsonDependencies = isBlockedByPackageJsonDependencies; } else { cache2.set(toFileName2, createInfo( /*modulePaths*/ void 0, /*moduleSpecifiers*/ void 0, isBlockedByPackageJsonDependencies )); } }, clear() { containedNodeModulesWatchers == null ? void 0 : containedNodeModulesWatchers.forEach((watcher) => watcher.close()); cache == null ? void 0 : cache.clear(); containedNodeModulesWatchers == null ? void 0 : containedNodeModulesWatchers.clear(); currentKey = void 0; }, count() { return cache ? cache.size : 0; } }; if (Debug.isDebugging) { Object.defineProperty(result, "__cache", { get: () => cache }); } return result; function ensureCache(fromFileName, preferences, options) { const 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 `${fromFileName},${preferences.importModuleSpecifierEnding},${preferences.importModuleSpecifierPreference},${options.overrideImportMode}`; } function createInfo(modulePaths, moduleSpecifiers, isBlockedByPackageJsonDependencies) { return { modulePaths, moduleSpecifiers, isBlockedByPackageJsonDependencies }; } } var init_moduleSpecifierCache = __esm({ "src/server/moduleSpecifierCache.ts"() { "use strict"; init_ts7(); } }); // src/server/packageJsonCache.ts function createPackageJsonCache(host) { const packageJsons = /* @__PURE__ */ new Map(); const directoriesWithoutPackageJson = /* @__PURE__ */ new Map(); return { addOrUpdate, forEach: packageJsons.forEach.bind(packageJsons), get: packageJsons.get.bind(packageJsons), delete: (fileName) => { packageJsons.delete(fileName); directoriesWithoutPackageJson.set(getDirectoryPath(fileName), true); }, getInDirectory: (directory) => { return packageJsons.get(combinePaths(directory, "package.json")) || void 0; }, directoryHasPackageJson, searchDirectoryAndAncestors: (directory) => { forEachAncestorDirectory(directory, (ancestor) => { if (directoryHasPackageJson(ancestor) !== 3 /* Maybe */) { return true; } const packageJsonFileName = host.toPath(combinePaths(ancestor, "package.json")); if (tryFileExists(host, packageJsonFileName)) { addOrUpdate(packageJsonFileName); } else { directoriesWithoutPackageJson.set(ancestor, true); } }); } }; function addOrUpdate(fileName) { const 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 */; } } var init_packageJsonCache = __esm({ "src/server/packageJsonCache.ts"() { "use strict"; init_ts7(); } }); // src/server/session.ts function hrTimeToMilliseconds(time) { const seconds = time[0]; const nanoseconds = time[1]; return (1e9 * seconds + nanoseconds) / 1e6; } function isDeclarationFileInJSOnlyNonConfiguredProject(project, file) { if ((isInferredProject(project) || isExternalProject(project)) && project.isJsOnlyProject()) { const scriptInfo = project.getScriptInfoForNormalizedPath(file); return scriptInfo && !scriptInfo.isJavaScript(); } return false; } function dtsChangeCanAffectEmit(compilationSettings) { return getEmitDeclarations(compilationSettings) || !!compilationSettings.emitDecoratorMetadata; } function formatDiag(fileName, project, diag2) { const 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) { const start = diag2.file && convertToLocation(getLineAndCharacterOfPosition(diag2.file, diag2.start)); const end = diag2.file && convertToLocation(getLineAndCharacterOfPosition(diag2.file, diag2.start + diag2.length)); const text = flattenDiagnosticMessageText(diag2.messageText, "\n"); const { code, source } = diag2; const category = diagnosticCategoryName(diag2); const common = { start, end, text, code, category, reportsUnnecessary: diag2.reportsUnnecessary, reportsDeprecated: diag2.reportsDeprecated, source, relatedInformation: map(diag2.relatedInformation, formatRelatedInformation) }; return includeFileName ? { ...common, fileName: diag2.file && diag2.file.fileName } : common; } function allEditsBeforePos(edits, pos) { return edits.every((edit) => textSpanEnd(edit.span) < pos); } function formatMessage2(msg, logger, byteLength, newLine) { const verboseLogging = logger.hasLevel(3 /* verbose */); const json = JSON.stringify(msg); if (verboseLogging) { logger.info(`${msg.type}:${indent2(JSON.stringify(msg, void 0, " "))}`); } const len = byteLength(json, "utf8"); return `Content-Length: ${1 + len}\r \r ${json}${newLine}`; } function toEvent(eventName, body) { return { seq: 0, type: "event", event: eventName, body }; } function combineProjectOutput(defaultValue, getValue, projects, action) { const outputs = flatMapToMutable(isArray(projects) ? projects : projects.projects, (project) => action(project, defaultValue)); if (!isArray(projects) && projects.symLinkedProjects) { projects.symLinkedProjects.forEach((projects2, path) => { const value = getValue(path); outputs.push(...flatMap(projects2, (project) => action(project, value))); }); } return deduplicate(outputs, equateValues); } function createDocumentSpanSet() { return createSet(({ textSpan }) => textSpan.start + 100003 * textSpan.length, documentSpansEqual); } function getRenameLocationsWorker(projects, defaultProject, initialLocation, findInStrings, findInComments, preferences) { const perProjectResults = getPerProjectReferences( projects, defaultProject, initialLocation, /*isForRename*/ true, (project, position) => project.getLanguageService().findRenameLocations(position.fileName, position.pos, findInStrings, findInComments, preferences), (renameLocation, cb) => cb(documentSpanLocation(renameLocation)) ); if (isArray(perProjectResults)) { return perProjectResults; } const results = []; const seen = createDocumentSpanSet(); perProjectResults.forEach((projectResults, project) => { for (const result of projectResults) { if (!seen.has(result) && !getMappedLocationForProject(documentSpanLocation(result), project)) { results.push(result); seen.add(result); } } }); return results; } function getDefinitionLocation(defaultProject, initialLocation, isForRename) { const infos = defaultProject.getLanguageService().getDefinitionAtPosition( initialLocation.fileName, initialLocation.pos, /*searchOtherFilesOnly*/ false, /*stopAtAlias*/ isForRename ); const info = infos && firstOrUndefined(infos); return info && !info.isLocal ? { fileName: info.fileName, pos: info.textSpan.start } : void 0; } function getReferencesWorker(projects, defaultProject, initialLocation, logger) { var _a, _b; const perProjectResults = getPerProjectReferences( projects, defaultProject, initialLocation, /*isForRename*/ false, (project, position) => { logger.info(`Finding references to ${position.fileName} position ${position.pos} in project ${project.getProjectName()}`); return project.getLanguageService().findReferences(position.fileName, position.pos); }, (referencedSymbol, cb) => { cb(documentSpanLocation(referencedSymbol.definition)); for (const ref of referencedSymbol.references) { cb(documentSpanLocation(ref)); } } ); if (isArray(perProjectResults)) { return perProjectResults; } const 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((projectResults) => { for (const referencedSymbol of projectResults) { for (const ref of referencedSymbol.references) { delete ref.isDefinition; } } }); } else { const knownSymbolSpans = createDocumentSpanSet(); for (const referencedSymbol of defaultProjectResults) { for (const ref of referencedSymbol.references) { if (ref.isDefinition) { knownSymbolSpans.add(ref); break; } } } const updatedProjects = /* @__PURE__ */ new Set(); while (true) { let progress = false; perProjectResults.forEach((referencedSymbols, project) => { if (updatedProjects.has(project)) return; const updated = project.getLanguageService().updateIsDefinitionOfReferencedSymbols(referencedSymbols, knownSymbolSpans); if (updated) { updatedProjects.add(project); progress = true; } }); if (!progress) break; } perProjectResults.forEach((referencedSymbols, project) => { if (updatedProjects.has(project)) return; for (const referencedSymbol of referencedSymbols) { for (const ref of referencedSymbol.references) { ref.isDefinition = false; } } }); } const results = []; const seenRefs = createDocumentSpanSet(); perProjectResults.forEach((projectResults, project) => { for (const referencedSymbol of projectResults) { const mappedDefinitionFile = getMappedLocationForProject(documentSpanLocation(referencedSymbol.definition), project); const definition = mappedDefinitionFile === void 0 ? referencedSymbol.definition : { ...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) }; let symbolToAddTo = find(results, (o) => documentSpansEqual(o.definition, definition)); if (!symbolToAddTo) { symbolToAddTo = { definition, references: [] }; results.push(symbolToAddTo); } for (const ref of referencedSymbol.references) { if (!seenRefs.has(ref) && !getMappedLocationForProject(documentSpanLocation(ref), project)) { seenRefs.add(ref); symbolToAddTo.references.push(ref); } } } }); return results.filter((o) => o.references.length !== 0); } function forEachProjectInProjects(projects, path, cb) { for (const project of isArray(projects) ? projects : projects.projects) { cb(project, path); } if (!isArray(projects) && projects.symLinkedProjects) { projects.symLinkedProjects.forEach((symlinkedProjects, symlinkedPath) => { for (const project of symlinkedProjects) { cb(project, symlinkedPath); } }); } } function getPerProjectReferences(projects, defaultProject, initialLocation, isForRename, getResultsForPosition, forPositionInResult) { const resultsMap = /* @__PURE__ */ new Map(); const queue = createQueue(); queue.enqueue({ project: defaultProject, location: initialLocation }); forEachProjectInProjects(projects, initialLocation.fileName, (project, path) => { const location = { fileName: path, pos: initialLocation.pos }; queue.enqueue({ project, location }); }); const projectService = defaultProject.projectService; const cancellationToken = defaultProject.getCancellationToken(); const defaultDefinition = getDefinitionLocation(defaultProject, initialLocation, isForRename); const getGeneratedDefinition = memoize(() => defaultProject.isSourceOfProjectReferenceRedirect(defaultDefinition.fileName) ? defaultDefinition : defaultProject.getLanguageService().getSourceMapper().tryGetGeneratedPosition(defaultDefinition)); const getSourceDefinition = memoize(() => defaultProject.isSourceOfProjectReferenceRedirect(defaultDefinition.fileName) ? defaultDefinition : defaultProject.getLanguageService().getSourceMapper().tryGetSourcePosition(defaultDefinition)); const searchedProjectKeys = /* @__PURE__ */ new Set(); onCancellation: while (!queue.isEmpty()) { while (!queue.isEmpty()) { if (cancellationToken.isCancellationRequested()) break onCancellation; const { project, location } = queue.dequeue(); if (resultsMap.has(project)) continue; if (isLocationProjectReferenceRedirect(project, location)) continue; updateProjectIfDirty(project); if (!project.containsFile(toNormalizedPath(location.fileName))) { continue; } const projectResults = searchPosition(project, location); resultsMap.set(project, projectResults ?? emptyArray2); searchedProjectKeys.add(getProjectKey(project)); } if (defaultDefinition) { projectService.loadAncestorProjectTree(searchedProjectKeys); projectService.forEachEnabledProject((project) => { if (cancellationToken.isCancellationRequested()) return; if (resultsMap.has(project)) return; const location = mapDefinitionInProject(defaultDefinition, project, getGeneratedDefinition, getSourceDefinition); if (location) { queue.enqueue({ project, location }); } }); } } if (resultsMap.size === 1) { return firstIterator(resultsMap.values()); } return resultsMap; function searchPosition(project, location) { const projectResults = getResultsForPosition(project, location); if (!projectResults) return void 0; for (const result of projectResults) { forPositionInResult(result, (position) => { const originalLocation = projectService.getOriginalLocationEnsuringConfiguredProject(project, position); if (!originalLocation) return; const originalScriptInfo = projectService.getScriptInfo(originalLocation.fileName); for (const project2 of originalScriptInfo.containingProjects) { if (!project2.isOrphan() && !resultsMap.has(project2)) { queue.enqueue({ project: project2, location: originalLocation }); } } const symlinkedProjectsMap = projectService.getSymlinkedProjects(originalScriptInfo); if (symlinkedProjectsMap) { symlinkedProjectsMap.forEach((symlinkedProjects, symlinkedPath) => { for (const symlinkedProject of symlinkedProjects) { if (!symlinkedProject.isOrphan() && !resultsMap.has(symlinkedProject)) { queue.enqueue({ project: symlinkedProject, location: { fileName: symlinkedPath, pos: originalLocation.pos } }); } } }); } }); } return projectResults; } } function mapDefinitionInProject(definition, project, getGeneratedDefinition, getSourceDefinition) { if (project.containsFile(toNormalizedPath(definition.fileName)) && !isLocationProjectReferenceRedirect(project, definition)) { return definition; } const generatedDefinition = getGeneratedDefinition(); if (generatedDefinition && project.containsFile(toNormalizedPath(generatedDefinition.fileName))) return generatedDefinition; const sourceDefinition = getSourceDefinition(); return sourceDefinition && project.containsFile(toNormalizedPath(sourceDefinition.fileName)) ? sourceDefinition : void 0; } function isLocationProjectReferenceRedirect(project, location) { if (!location) return false; const program = project.getLanguageService().getProgram(); if (!program) return false; const 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({ fileName, textSpan }) { return { fileName, pos: textSpan.start }; } function getMappedLocationForProject(location, project) { return getMappedLocation(location, project.getSourceMapper(), (p) => project.projectService.fileExists(p)); } function getMappedDocumentSpanForProject(documentSpan, project) { return getMappedDocumentSpan(documentSpan, project.getSourceMapper(), (p) => project.projectService.fileExists(p)); } function getMappedContextSpanForProject(documentSpan, project) { return getMappedContextSpan(documentSpan, project.getSourceMapper(), (p) => project.projectService.fileExists(p)); } function toProtocolTextSpan(textSpan, scriptInfo) { return { start: scriptInfo.positionToLineOffset(textSpan.start), end: scriptInfo.positionToLineOffset(textSpanEnd(textSpan)) }; } function toProtocolTextSpanWithContext(span, contextSpan, scriptInfo) { const textSpan = toProtocolTextSpan(span, scriptInfo); const contextTextSpan = contextSpan && toProtocolTextSpan(contextSpan, scriptInfo); return contextTextSpan ? { ...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) { const ranges = linkedEdit.ranges.map( (r) => { return { start: scriptInfo.positionToLineOffset(r.start), end: scriptInfo.positionToLineOffset(r.start + r.length) }; } ); if (!linkedEdit.wordPattern) return { ranges }; return { 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); const 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) { const newText = applyEdits(oldText, renameFilename, edits); const { line, character } = computeLineAndCharacterOfPosition(computeLineStarts(newText), renameLocation); return { line: line + 1, offset: character + 1 }; } function applyEdits(text, textFilename, edits) { for (const { fileName, textChanges: textChanges2 } of edits) { if (fileName !== textFilename) { continue; } for (let i = textChanges2.length - 1; i >= 0; i--) { const { newText, span: { start, length: length2 } } = textChanges2[i]; text = text.slice(0, start) + newText + text.slice(start + length2); } } return text; } function referenceEntryToReferencesResponseItem(projectService, { fileName, textSpan, contextSpan, isWriteAccess: isWriteAccess2, isDefinition }, { disableLineTextInReferences }) { const scriptInfo = Debug.checkDefined(projectService.getScriptInfo(fileName)); const span = toProtocolTextSpanWithContext(textSpan, contextSpan, scriptInfo); const lineText = disableLineTextInReferences ? void 0 : getLineText(scriptInfo, span); return { file: fileName, ...span, lineText, isWriteAccess: isWriteAccess2, isDefinition }; } function getLineText(scriptInfo, span) { const 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")); } var nullCancellationToken, CommandNames, MultistepOperation, invalidPartialSemanticModeCommands, invalidSyntacticModeCommands, Session3; var init_session = __esm({ "src/server/session.ts"() { "use strict"; init_ts7(); init_ts_server3(); init_protocol(); nullCancellationToken = { isCancellationRequested: () => false, setRequest: () => void 0, resetRequest: () => void 0 }; CommandNames = CommandTypes; MultistepOperation = class { constructor(operationHost) { this.operationHost = operationHost; } startNew(action) { this.complete(); this.requestId = this.operationHost.getCurrentRequestId(); this.executeAction(action); } complete() { if (this.requestId !== void 0) { this.operationHost.sendRequestCompletedEvent(this.requestId); this.requestId = void 0; } this.setTimerHandle(void 0); this.setImmediateId(void 0); } immediate(actionType, action) { const requestId = this.requestId; Debug.assert(requestId === this.operationHost.getCurrentRequestId(), "immediate: incorrect request id"); this.setImmediateId(this.operationHost.getServerHost().setImmediate(() => { this.immediateId = void 0; this.operationHost.executeWithRequestId(requestId, () => this.executeAction(action)); }, actionType)); } delay(actionType, ms, action) { const requestId = this.requestId; Debug.assert(requestId === this.operationHost.getCurrentRequestId(), "delay: incorrect request id"); this.setTimerHandle(this.operationHost.getServerHost().setTimeout(() => { this.timerHandle = void 0; this.operationHost.executeWithRequestId(requestId, () => this.executeAction(action)); }, ms, actionType)); } executeAction(action) { var _a, _b, _c, _d, _e, _f; let 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 ${this.requestId}`); } } if (stop || !this.hasPendingWork()) { this.complete(); } } setTimerHandle(timerHandle) { if (this.timerHandle !== void 0) { this.operationHost.getServerHost().clearTimeout(this.timerHandle); } this.timerHandle = timerHandle; } setImmediateId(immediateId) { if (this.immediateId !== void 0) { this.operationHost.getServerHost().clearImmediate(this.immediateId); } this.immediateId = immediateId; } hasPendingWork() { return !!this.timerHandle || !!this.immediateId; } }; 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 */ ]; invalidSyntacticModeCommands = [ ...invalidPartialSemanticModeCommands, "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 */ ]; Session3 = class { constructor(opts) { this.changeSeq = 0; this.handlers = new Map(Object.entries({ // TODO(jakebailey): correctly type the handlers ["status" /* Status */]: () => { const response = { version }; return this.requiredResponse(response); }, ["openExternalProject" /* OpenExternalProject */]: (request) => { this.projectService.openExternalProject(request.arguments); return this.requiredResponse( /*response*/ true ); }, ["openExternalProjects" /* OpenExternalProjects */]: (request) => { this.projectService.openExternalProjects(request.arguments.projects); return this.requiredResponse( /*response*/ true ); }, ["closeExternalProject" /* CloseExternalProject */]: (request) => { this.projectService.closeExternalProject(request.arguments.projectFileName); return this.requiredResponse( /*response*/ true ); }, ["synchronizeProjectList" /* SynchronizeProjectList */]: (request) => { const result = this.projectService.synchronizeProjectList(request.arguments.knownProjects, request.arguments.includeProjectReferenceRedirectInfo); if (!result.some((p) => p.projectErrors && p.projectErrors.length !== 0)) { return this.requiredResponse(result); } const converted = map(result, (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); }, ["updateOpen" /* UpdateOpen */]: (request) => { this.changeSeq++; this.projectService.applyChangesInOpenFiles( request.arguments.openFiles && mapIterator(request.arguments.openFiles, (file) => ({ fileName: file.file, content: file.fileContent, scriptKind: file.scriptKindName, projectRootPath: file.projectRootPath })), request.arguments.changedFiles && mapIterator(request.arguments.changedFiles, (file) => ({ fileName: file.fileName, changes: mapDefinedIterator(arrayReverseIterator(file.textChanges), (change) => { const scriptInfo = Debug.checkDefined(this.projectService.getScriptInfo(file.fileName)); const start = scriptInfo.lineOffsetToPosition(change.start.line, change.start.offset); const end = scriptInfo.lineOffsetToPosition(change.end.line, change.end.offset); return start >= 0 ? { span: { start, length: end - start }, newText: change.newText } : void 0; }) })), request.arguments.closedFiles ); return this.requiredResponse( /*response*/ true ); }, ["applyChangedToOpenFiles" /* ApplyChangedToOpenFiles */]: (request) => { this.changeSeq++; this.projectService.applyChangesInOpenFiles( request.arguments.openFiles, request.arguments.changedFiles && mapIterator(request.arguments.changedFiles, (file) => ({ fileName: file.fileName, // apply changes in reverse order changes: arrayReverseIterator(file.changes) })), request.arguments.closedFiles ); return this.requiredResponse( /*response*/ true ); }, ["exit" /* Exit */]: () => { this.exit(); return this.notRequired(); }, ["definition" /* Definition */]: (request) => { return this.requiredResponse(this.getDefinition( request.arguments, /*simplifiedResult*/ true )); }, ["definition-full" /* DefinitionFull */]: (request) => { return this.requiredResponse(this.getDefinition( request.arguments, /*simplifiedResult*/ false )); }, ["definitionAndBoundSpan" /* DefinitionAndBoundSpan */]: (request) => { return this.requiredResponse(this.getDefinitionAndBoundSpan( request.arguments, /*simplifiedResult*/ true )); }, ["definitionAndBoundSpan-full" /* DefinitionAndBoundSpanFull */]: (request) => { return this.requiredResponse(this.getDefinitionAndBoundSpan( request.arguments, /*simplifiedResult*/ false )); }, ["findSourceDefinition" /* FindSourceDefinition */]: (request) => { return this.requiredResponse(this.findSourceDefinition(request.arguments)); }, ["emit-output" /* EmitOutput */]: (request) => { return this.requiredResponse(this.getEmitOutput(request.arguments)); }, ["typeDefinition" /* TypeDefinition */]: (request) => { return this.requiredResponse(this.getTypeDefinition(request.arguments)); }, ["implementation" /* Implementation */]: (request) => { return this.requiredResponse(this.getImplementation( request.arguments, /*simplifiedResult*/ true )); }, ["implementation-full" /* ImplementationFull */]: (request) => { return this.requiredResponse(this.getImplementation( request.arguments, /*simplifiedResult*/ false )); }, ["references" /* References */]: (request) => { return this.requiredResponse(this.getReferences( request.arguments, /*simplifiedResult*/ true )); }, ["references-full" /* ReferencesFull */]: (request) => { return this.requiredResponse(this.getReferences( request.arguments, /*simplifiedResult*/ false )); }, ["rename" /* Rename */]: (request) => { return this.requiredResponse(this.getRenameLocations( request.arguments, /*simplifiedResult*/ true )); }, ["renameLocations-full" /* RenameLocationsFull */]: (request) => { return this.requiredResponse(this.getRenameLocations( request.arguments, /*simplifiedResult*/ false )); }, ["rename-full" /* RenameInfoFull */]: (request) => { return this.requiredResponse(this.getRenameInfo(request.arguments)); }, ["open" /* Open */]: (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(); }, ["quickinfo" /* Quickinfo */]: (request) => { return this.requiredResponse(this.getQuickInfoWorker( request.arguments, /*simplifiedResult*/ true )); }, ["quickinfo-full" /* QuickinfoFull */]: (request) => { return this.requiredResponse(this.getQuickInfoWorker( request.arguments, /*simplifiedResult*/ false )); }, ["getOutliningSpans" /* GetOutliningSpans */]: (request) => { return this.requiredResponse(this.getOutliningSpans( request.arguments, /*simplifiedResult*/ true )); }, ["outliningSpans" /* GetOutliningSpansFull */]: (request) => { return this.requiredResponse(this.getOutliningSpans( request.arguments, /*simplifiedResult*/ false )); }, ["todoComments" /* TodoComments */]: (request) => { return this.requiredResponse(this.getTodoComments(request.arguments)); }, ["indentation" /* Indentation */]: (request) => { return this.requiredResponse(this.getIndentation(request.arguments)); }, ["nameOrDottedNameSpan" /* NameOrDottedNameSpan */]: (request) => { return this.requiredResponse(this.getNameOrDottedNameSpan(request.arguments)); }, ["breakpointStatement" /* BreakpointStatement */]: (request) => { return this.requiredResponse(this.getBreakpointStatement(request.arguments)); }, ["braceCompletion" /* BraceCompletion */]: (request) => { return this.requiredResponse(this.isValidBraceCompletion(request.arguments)); }, ["docCommentTemplate" /* DocCommentTemplate */]: (request) => { return this.requiredResponse(this.getDocCommentTemplate(request.arguments)); }, ["getSpanOfEnclosingComment" /* GetSpanOfEnclosingComment */]: (request) => { return this.requiredResponse(this.getSpanOfEnclosingComment(request.arguments)); }, ["fileReferences" /* FileReferences */]: (request) => { return this.requiredResponse(this.getFileReferences( request.arguments, /*simplifiedResult*/ true )); }, ["fileReferences-full" /* FileReferencesFull */]: (request) => { return this.requiredResponse(this.getFileReferences( request.arguments, /*simplifiedResult*/ false )); }, ["format" /* Format */]: (request) => { return this.requiredResponse(this.getFormattingEditsForRange(request.arguments)); }, ["formatonkey" /* Formatonkey */]: (request) => { return this.requiredResponse(this.getFormattingEditsAfterKeystroke(request.arguments)); }, ["format-full" /* FormatFull */]: (request) => { return this.requiredResponse(this.getFormattingEditsForDocumentFull(request.arguments)); }, ["formatonkey-full" /* FormatonkeyFull */]: (request) => { return this.requiredResponse(this.getFormattingEditsAfterKeystrokeFull(request.arguments)); }, ["formatRange-full" /* FormatRangeFull */]: (request) => { return this.requiredResponse(this.getFormattingEditsForRangeFull(request.arguments)); }, ["completionInfo" /* CompletionInfo */]: (request) => { return this.requiredResponse(this.getCompletions(request.arguments, "completionInfo" /* CompletionInfo */)); }, ["completions" /* Completions */]: (request) => { return this.requiredResponse(this.getCompletions(request.arguments, "completions" /* Completions */)); }, ["completions-full" /* CompletionsFull */]: (request) => { return this.requiredResponse(this.getCompletions(request.arguments, "completions-full" /* CompletionsFull */)); }, ["completionEntryDetails" /* CompletionDetails */]: (request) => { return this.requiredResponse(this.getCompletionEntryDetails( request.arguments, /*fullResult*/ false )); }, ["completionEntryDetails-full" /* CompletionDetailsFull */]: (request) => { return this.requiredResponse(this.getCompletionEntryDetails( request.arguments, /*fullResult*/ true )); }, ["compileOnSaveAffectedFileList" /* CompileOnSaveAffectedFileList */]: (request) => { return this.requiredResponse(this.getCompileOnSaveAffectedFileList(request.arguments)); }, ["compileOnSaveEmitFile" /* CompileOnSaveEmitFile */]: (request) => { return this.requiredResponse(this.emitFile(request.arguments)); }, ["signatureHelp" /* SignatureHelp */]: (request) => { return this.requiredResponse(this.getSignatureHelpItems( request.arguments, /*simplifiedResult*/ true )); }, ["signatureHelp-full" /* SignatureHelpFull */]: (request) => { return this.requiredResponse(this.getSignatureHelpItems( request.arguments, /*simplifiedResult*/ false )); }, ["compilerOptionsDiagnostics-full" /* CompilerOptionsDiagnosticsFull */]: (request) => { return this.requiredResponse(this.getCompilerOptionsDiagnostics(request.arguments)); }, ["encodedSyntacticClassifications-full" /* EncodedSyntacticClassificationsFull */]: (request) => { return this.requiredResponse(this.getEncodedSyntacticClassifications(request.arguments)); }, ["encodedSemanticClassifications-full" /* EncodedSemanticClassificationsFull */]: (request) => { return this.requiredResponse(this.getEncodedSemanticClassifications(request.arguments)); }, ["cleanup" /* Cleanup */]: () => { this.cleanup(); return this.requiredResponse( /*response*/ true ); }, ["semanticDiagnosticsSync" /* SemanticDiagnosticsSync */]: (request) => { return this.requiredResponse(this.getSemanticDiagnosticsSync(request.arguments)); }, ["syntacticDiagnosticsSync" /* SyntacticDiagnosticsSync */]: (request) => { return this.requiredResponse(this.getSyntacticDiagnosticsSync(request.arguments)); }, ["suggestionDiagnosticsSync" /* SuggestionDiagnosticsSync */]: (request) => { return this.requiredResponse(this.getSuggestionDiagnosticsSync(request.arguments)); }, ["geterr" /* Geterr */]: (request) => { this.errorCheck.startNew((next) => this.getDiagnostics(next, request.arguments.delay, request.arguments.files)); return this.notRequired(); }, ["geterrForProject" /* GeterrForProject */]: (request) => { this.errorCheck.startNew((next) => this.getDiagnosticsForProject(next, request.arguments.delay, request.arguments.file)); return this.notRequired(); }, ["change" /* Change */]: (request) => { this.change(request.arguments); return this.notRequired(); }, ["configure" /* Configure */]: (request) => { this.projectService.setHostConfiguration(request.arguments); this.doOutput( /*info*/ void 0, "configure" /* Configure */, request.seq, /*success*/ true ); return this.notRequired(); }, ["reload" /* Reload */]: (request) => { this.reload(request.arguments, request.seq); return this.requiredResponse({ reloadFinished: true }); }, ["saveto" /* Saveto */]: (request) => { const savetoArgs = request.arguments; this.saveToTmp(savetoArgs.file, savetoArgs.tmpfile); return this.notRequired(); }, ["close" /* Close */]: (request) => { const closeArgs = request.arguments; this.closeClientFile(closeArgs.file); return this.notRequired(); }, ["navto" /* Navto */]: (request) => { return this.requiredResponse(this.getNavigateToItems( request.arguments, /*simplifiedResult*/ true )); }, ["navto-full" /* NavtoFull */]: (request) => { return this.requiredResponse(this.getNavigateToItems( request.arguments, /*simplifiedResult*/ false )); }, ["brace" /* Brace */]: (request) => { return this.requiredResponse(this.getBraceMatching( request.arguments, /*simplifiedResult*/ true )); }, ["brace-full" /* BraceFull */]: (request) => { return this.requiredResponse(this.getBraceMatching( request.arguments, /*simplifiedResult*/ false )); }, ["navbar" /* NavBar */]: (request) => { return this.requiredResponse(this.getNavigationBarItems( request.arguments, /*simplifiedResult*/ true )); }, ["navbar-full" /* NavBarFull */]: (request) => { return this.requiredResponse(this.getNavigationBarItems( request.arguments, /*simplifiedResult*/ false )); }, ["navtree" /* NavTree */]: (request) => { return this.requiredResponse(this.getNavigationTree( request.arguments, /*simplifiedResult*/ true )); }, ["navtree-full" /* NavTreeFull */]: (request) => { return this.requiredResponse(this.getNavigationTree( request.arguments, /*simplifiedResult*/ false )); }, ["documentHighlights" /* DocumentHighlights */]: (request) => { return this.requiredResponse(this.getDocumentHighlights( request.arguments, /*simplifiedResult*/ true )); }, ["documentHighlights-full" /* DocumentHighlightsFull */]: (request) => { return this.requiredResponse(this.getDocumentHighlights( request.arguments, /*simplifiedResult*/ false )); }, ["compilerOptionsForInferredProjects" /* CompilerOptionsForInferredProjects */]: (request) => { this.setCompilerOptionsForInferredProjects(request.arguments); return this.requiredResponse( /*response*/ true ); }, ["projectInfo" /* ProjectInfo */]: (request) => { return this.requiredResponse(this.getProjectInfo(request.arguments)); }, ["reloadProjects" /* ReloadProjects */]: () => { this.projectService.reloadProjects(); return this.notRequired(); }, ["jsxClosingTag" /* JsxClosingTag */]: (request) => { return this.requiredResponse(this.getJsxClosingTag(request.arguments)); }, ["linkedEditingRange" /* LinkedEditingRange */]: (request) => { return this.requiredResponse(this.getLinkedEditingRange(request.arguments)); }, ["getCodeFixes" /* GetCodeFixes */]: (request) => { return this.requiredResponse(this.getCodeFixes( request.arguments, /*simplifiedResult*/ true )); }, ["getCodeFixes-full" /* GetCodeFixesFull */]: (request) => { return this.requiredResponse(this.getCodeFixes( request.arguments, /*simplifiedResult*/ false )); }, ["getCombinedCodeFix" /* GetCombinedCodeFix */]: (request) => { return this.requiredResponse(this.getCombinedCodeFix( request.arguments, /*simplifiedResult*/ true )); }, ["getCombinedCodeFix-full" /* GetCombinedCodeFixFull */]: (request) => { return this.requiredResponse(this.getCombinedCodeFix( request.arguments, /*simplifiedResult*/ false )); }, ["applyCodeActionCommand" /* ApplyCodeActionCommand */]: (request) => { return this.requiredResponse(this.applyCodeActionCommand(request.arguments)); }, ["getSupportedCodeFixes" /* GetSupportedCodeFixes */]: (request) => { return this.requiredResponse(this.getSupportedCodeFixes(request.arguments)); }, ["getApplicableRefactors" /* GetApplicableRefactors */]: (request) => { return this.requiredResponse(this.getApplicableRefactors(request.arguments)); }, ["getEditsForRefactor" /* GetEditsForRefactor */]: (request) => { return this.requiredResponse(this.getEditsForRefactor( request.arguments, /*simplifiedResult*/ true )); }, ["getMoveToRefactoringFileSuggestions" /* GetMoveToRefactoringFileSuggestions */]: (request) => { return this.requiredResponse(this.getMoveToRefactoringFileSuggestions(request.arguments)); }, ["getEditsForRefactor-full" /* GetEditsForRefactorFull */]: (request) => { return this.requiredResponse(this.getEditsForRefactor( request.arguments, /*simplifiedResult*/ false )); }, ["organizeImports" /* OrganizeImports */]: (request) => { return this.requiredResponse(this.organizeImports( request.arguments, /*simplifiedResult*/ true )); }, ["organizeImports-full" /* OrganizeImportsFull */]: (request) => { return this.requiredResponse(this.organizeImports( request.arguments, /*simplifiedResult*/ false )); }, ["getEditsForFileRename" /* GetEditsForFileRename */]: (request) => { return this.requiredResponse(this.getEditsForFileRename( request.arguments, /*simplifiedResult*/ true )); }, ["getEditsForFileRename-full" /* GetEditsForFileRenameFull */]: (request) => { return this.requiredResponse(this.getEditsForFileRename( request.arguments, /*simplifiedResult*/ false )); }, ["configurePlugin" /* ConfigurePlugin */]: (request) => { this.configurePlugin(request.arguments); this.doOutput( /*info*/ void 0, "configurePlugin" /* ConfigurePlugin */, request.seq, /*success*/ true ); return this.notRequired(); }, ["selectionRange" /* SelectionRange */]: (request) => { return this.requiredResponse(this.getSmartSelectionRange( request.arguments, /*simplifiedResult*/ true )); }, ["selectionRange-full" /* SelectionRangeFull */]: (request) => { return this.requiredResponse(this.getSmartSelectionRange( request.arguments, /*simplifiedResult*/ false )); }, ["prepareCallHierarchy" /* PrepareCallHierarchy */]: (request) => { return this.requiredResponse(this.prepareCallHierarchy(request.arguments)); }, ["provideCallHierarchyIncomingCalls" /* ProvideCallHierarchyIncomingCalls */]: (request) => { return this.requiredResponse(this.provideCallHierarchyIncomingCalls(request.arguments)); }, ["provideCallHierarchyOutgoingCalls" /* ProvideCallHierarchyOutgoingCalls */]: (request) => { return this.requiredResponse(this.provideCallHierarchyOutgoingCalls(request.arguments)); }, ["toggleLineComment" /* ToggleLineComment */]: (request) => { return this.requiredResponse(this.toggleLineComment( request.arguments, /*simplifiedResult*/ true )); }, ["toggleLineComment-full" /* ToggleLineCommentFull */]: (request) => { return this.requiredResponse(this.toggleLineComment( request.arguments, /*simplifiedResult*/ false )); }, ["toggleMultilineComment" /* ToggleMultilineComment */]: (request) => { return this.requiredResponse(this.toggleMultilineComment( request.arguments, /*simplifiedResult*/ true )); }, ["toggleMultilineComment-full" /* ToggleMultilineCommentFull */]: (request) => { return this.requiredResponse(this.toggleMultilineComment( request.arguments, /*simplifiedResult*/ false )); }, ["commentSelection" /* CommentSelection */]: (request) => { return this.requiredResponse(this.commentSelection( request.arguments, /*simplifiedResult*/ true )); }, ["commentSelection-full" /* CommentSelectionFull */]: (request) => { return this.requiredResponse(this.commentSelection( request.arguments, /*simplifiedResult*/ false )); }, ["uncommentSelection" /* UncommentSelection */]: (request) => { return this.requiredResponse(this.uncommentSelection( request.arguments, /*simplifiedResult*/ true )); }, ["uncommentSelection-full" /* UncommentSelectionFull */]: (request) => { return this.requiredResponse(this.uncommentSelection( request.arguments, /*simplifiedResult*/ false )); }, ["provideInlayHints" /* ProvideInlayHints */]: (request) => { return this.requiredResponse(this.provideInlayHints(request.arguments)); } })); 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; const { throttleWaitMilliseconds } = opts; this.eventHandler = this.canUseEvents ? opts.eventHandler || ((event) => this.defaultEventHandler(event)) : void 0; const multistepOperationHost = { executeWithRequestId: (requestId, action) => this.executeWithRequestId(requestId, action), getCurrentRequestId: () => this.currentRequestId, getServerHost: () => this.host, logError: (err, cmd) => this.logError(err, cmd), sendRequestCompletedEvent: (requestId) => this.sendRequestCompletedEvent(requestId), isCancellationRequested: () => this.cancellationToken.isCancellationRequested() }; this.errorCheck = new MultistepOperation(multistepOperationHost); const settings = { host: this.host, logger: this.logger, cancellationToken: this.cancellationToken, useSingleInferredProject: opts.useSingleInferredProject, useInferredProjectPerProjectRoot: opts.useInferredProjectPerProjectRoot, typingsInstaller: this.typingsInstaller, throttleWaitMilliseconds, eventHandler: this.eventHandler, suppressDiagnosticEvents: this.suppressDiagnosticEvents, globalPlugins: opts.globalPlugins, pluginProbeLocations: opts.pluginProbeLocations, allowLocalPluginLoads: opts.allowLocalPluginLoads, typesMapLocation: opts.typesMapLocation, serverMode: opts.serverMode, session: this }; 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( (commandName) => this.handlers.set(commandName, (request) => { throw new Error(`Request: ${request.command} not allowed in LanguageServiceMode.PartialSemantic`); }) ); break; case 2 /* Syntactic */: invalidSyntacticModeCommands.forEach( (commandName) => this.handlers.set(commandName, (request) => { throw new Error(`Request: ${request.command} not allowed in LanguageServiceMode.Syntactic`); }) ); break; default: Debug.assertNever(this.projectService.serverMode); } } sendRequestCompletedEvent(requestId) { this.event({ request_seq: requestId }, "requestCompleted"); } addPerformanceData(key, value) { if (!this.performanceData) { this.performanceData = {}; } this.performanceData[key] = (this.performanceData[key] ?? 0) + value; } performanceEventHandler(event) { switch (event.kind) { case "UpdateGraph": this.addPerformanceData("updateGraphDurationMs", event.durationMs); break; case "CreatePackageJsonAutoImportProvider": this.addPerformanceData("createAutoImportProviderProgramDurationMs", event.durationMs); break; } } defaultEventHandler(event) { switch (event.eventName) { case ProjectsUpdatedInBackgroundEvent: const { openFiles } = event.data; this.projectsUpdatedInBackgroundEvent(openFiles); break; case ProjectLoadingStartEvent: const { project, reason } = event.data; this.event( { projectName: project.getProjectName(), reason }, ProjectLoadingStartEvent ); break; case ProjectLoadingFinishEvent: const { project: finishProject } = event.data; this.event({ projectName: finishProject.getProjectName() }, ProjectLoadingFinishEvent); break; case LargeFileReferencedEvent: const { file, fileSize, maxFileSize: maxFileSize2 } = event.data; this.event({ file, fileSize, maxFileSize: maxFileSize2 }, LargeFileReferencedEvent); break; case ConfigFileDiagEvent: const { triggerFile, configFileName: configFile, diagnostics } = event.data; const bakedDiags = map(diagnostics, (diagnostic) => formatDiagnosticToProtocol( diagnostic, /*includeFileName*/ true )); this.event({ triggerFile, configFile, diagnostics: bakedDiags }, ConfigFileDiagEvent); break; case ProjectLanguageServiceStateEvent: { const eventName = ProjectLanguageServiceStateEvent; this.event({ projectName: event.data.project.getProjectName(), languageServiceEnabled: event.data.languageServiceEnabled }, eventName); break; } case ProjectInfoTelemetryEvent: { const eventName = "telemetry"; this.event({ telemetryEventName: event.eventName, payload: event.data }, eventName); break; } } } projectsUpdatedInBackgroundEvent(openFiles) { this.projectService.logger.info(`got projects updated in background, updating diagnostics for ${openFiles}`); if (openFiles.length) { if (!this.suppressDiagnosticEvents && !this.noGetErrOnBackgroundUpdate) { this.errorCheck.startNew((next) => this.updateErrorCheck( next, openFiles, 100, /*requireOpen*/ true )); } this.event({ openFiles }, ProjectsUpdatedInBackgroundEvent); } } logError(err, cmd) { this.logErrorWorker(err, cmd); } logErrorWorker(err, cmd, fileRequest) { let 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 { const { file, project } = this.getFileAndProject(fileRequest); const scriptInfo = project.getScriptInfoForNormalizedPath(file); if (scriptInfo) { const text = getSnapshotText(scriptInfo.getSnapshot()); msg += ` File text of ${fileRequest.file}:${indent2(text)} `; } } catch { } } if (err.ProgramFiles) { msg += ` Program files: ${JSON.stringify(err.ProgramFiles)} `; msg += ` Projects:: `; let counter = 0; const addProjectInfo = (project) => { msg += ` Project '${project.projectName}' (${ProjectKind[project.projectKind]}) ${counter} `; msg += project.filesToString( /*writeProjectFileNames*/ true ); msg += "\n-----------------------------------------------\n"; counter++; }; this.projectService.externalProjects.forEach(addProjectInfo); this.projectService.configuredProjects.forEach(addProjectInfo); this.projectService.inferredProjects.forEach(addProjectInfo); } } this.logger.msg(msg, "Err" /* Err */); } send(msg) { if (msg.type === "event" && !this.canUseEvents) { if (this.logger.hasLevel(3 /* verbose */)) { this.logger.info(`Session does not support events: ignored event: ${JSON.stringify(msg)}`); } return; } this.writeMessage(msg); } writeMessage(msg) { var _a; const msgText = formatMessage2(msg, this.logger, this.byteLength, this.host.newLine); (_a = perfLogger) == null ? void 0 : _a.logEvent(`Response message size: ${msgText.length}`); this.host.write(msgText); } event(body, eventName) { this.send(toEvent(eventName, body)); } /** @internal */ doOutput(info, cmdName, reqSeq, success, message) { const res = { seq: 0, type: "response", command: cmdName, request_seq: reqSeq, success, performanceData: this.performanceData }; if (success) { let metadata; if (isArray(info)) { res.body = info; metadata = info.metadata; delete info.metadata; } else if (typeof info === "object") { if (info.metadata) { const { metadata: infoMetadata, ...body } = info; 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); } semanticCheck(file, project) { var _a, _b; (_a = tracing) == null ? void 0 : _a.push(tracing.Phase.Session, "semanticCheck", { file, configFilePath: project.canonicalConfigFilePath }); const diags = isDeclarationFileInJSOnlyNonConfiguredProject(project, file) ? emptyArray2 : project.getLanguageService().getSemanticDiagnostics(file).filter((d) => !!d.file); this.sendDiagnosticsEvent(file, project, diags, "semanticDiag"); (_b = tracing) == null ? void 0 : _b.pop(); } syntacticCheck(file, project) { var _a, _b; (_a = tracing) == null ? void 0 : _a.push(tracing.Phase.Session, "syntacticCheck", { file, configFilePath: project.canonicalConfigFilePath }); this.sendDiagnosticsEvent(file, project, project.getLanguageService().getSyntacticDiagnostics(file), "syntaxDiag"); (_b = tracing) == null ? void 0 : _b.pop(); } suggestionCheck(file, project) { var _a, _b; (_a = tracing) == null ? void 0 : _a.push(tracing.Phase.Session, "suggestionCheck", { file, configFilePath: project.canonicalConfigFilePath }); this.sendDiagnosticsEvent(file, project, project.getLanguageService().getSuggestionDiagnostics(file), "suggestionDiag"); (_b = tracing) == null ? void 0 : _b.pop(); } sendDiagnosticsEvent(file, project, diagnostics, kind) { try { this.event({ file, diagnostics: diagnostics.map((diag2) => formatDiag(file, project, diag2)) }, kind); } catch (err) { this.logError(err, kind); } } /** It is the caller's responsibility to verify that `!this.suppressDiagnosticEvents`. */ updateErrorCheck(next, checkList, ms, requireOpen = true) { Debug.assert(!this.suppressDiagnosticEvents); const seq = this.changeSeq; const followMs = Math.min(ms, 200); let index = 0; const goNext = () => { index++; if (checkList.length > index) { next.delay("checkOne", followMs, checkOne); } }; const checkOne = () => { if (this.changeSeq !== seq) { return; } let item = checkList[index]; if (isString(item)) { item = this.toPendingErrorCheck(item); if (!item) { goNext(); return; } } const { fileName, project } = item; 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", () => { this.semanticCheck(fileName, project); if (this.changeSeq !== seq) { return; } if (this.getPreferences(fileName).disableSuggestions) { goNext(); return; } next.immediate("suggestionCheck", () => { this.suggestionCheck(fileName, project); goNext(); }); }); }; if (checkList.length > index && this.changeSeq === seq) { next.delay("checkOne", ms, checkOne); } } cleanProjects(caption, projects) { if (!projects) { return; } this.logger.info(`cleaning ${caption}`); for (const p of projects) { p.getLanguageService( /*ensureSynchronized*/ false ).cleanupSemanticCache(); } } cleanup() { 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(); } } getEncodedSyntacticClassifications(args) { const { file, languageService } = this.getFileAndLanguageServiceForSyntacticOperation(args); return languageService.getEncodedSyntacticClassifications(file, args); } getEncodedSemanticClassifications(args) { const { file, project } = this.getFileAndProject(args); const format = args.format === "2020" ? "2020" /* TwentyTwenty */ : "original" /* Original */; return project.getLanguageService().getEncodedSemanticClassifications(file, args, format); } getProject(projectFileName) { return projectFileName === void 0 ? void 0 : this.projectService.findProject(projectFileName); } getConfigFileAndProject(args) { const project = this.getProject(args.projectFileName); const file = toNormalizedPath(args.file); return { configFile: project && project.hasConfigFile(file) ? file : void 0, project }; } getConfigFileDiagnostics(configFile, project, includeLinePosition) { const projectErrors = project.getAllProjectErrors(); const optionsErrors = project.getLanguageService().getCompilerOptionsDiagnostics(); const diagnosticsForConfigFile = filter( concatenate(projectErrors, optionsErrors), (diagnostic) => !!diagnostic.file && diagnostic.file.fileName === configFile ); return includeLinePosition ? this.convertToDiagnosticsWithLinePositionFromDiagnosticFile(diagnosticsForConfigFile) : map( diagnosticsForConfigFile, (diagnostic) => formatDiagnosticToProtocol( diagnostic, /*includeFileName*/ false ) ); } convertToDiagnosticsWithLinePositionFromDiagnosticFile(diagnostics) { return diagnostics.map((d) => ({ 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) })); } getCompilerOptionsDiagnostics(args) { const project = this.getProject(args.projectFileName); return this.convertToDiagnosticsWithLinePosition( filter( project.getLanguageService().getCompilerOptionsDiagnostics(), (diagnostic) => !diagnostic.file ), /*scriptInfo*/ void 0 ); } convertToDiagnosticsWithLinePosition(diagnostics, scriptInfo) { return diagnostics.map((d) => ({ 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) })); } getDiagnosticsWorker(args, isSemantic, selector, includeLinePosition) { const { project, file } = this.getFileAndProject(args); if (isSemantic && isDeclarationFileInJSOnlyNonConfiguredProject(project, file)) { return emptyArray2; } const scriptInfo = project.getScriptInfoForNormalizedPath(file); const diagnostics = selector(project, file); return includeLinePosition ? this.convertToDiagnosticsWithLinePosition(diagnostics, scriptInfo) : diagnostics.map((d) => formatDiag(file, project, d)); } getDefinition(args, simplifiedResult) { const { file, project } = this.getFileAndProject(args); const position = this.getPositionInFile(args, file); const definitions = this.mapDefinitionInfoLocations(project.getLanguageService().getDefinitionAtPosition(file, position) || emptyArray2, project); return simplifiedResult ? this.mapDefinitionInfo(definitions, project) : definitions.map(Session3.mapToOriginalLocation); } mapDefinitionInfoLocations(definitions, project) { return definitions.map((info) => { const newDocumentSpan = getMappedDocumentSpanForProject(info, project); return !newDocumentSpan ? info : { ...newDocumentSpan, containerKind: info.containerKind, containerName: info.containerName, kind: info.kind, name: info.name, failedAliasResolution: info.failedAliasResolution, ...info.unverified && { unverified: info.unverified } }; }); } getDefinitionAndBoundSpan(args, simplifiedResult) { const { file, project } = this.getFileAndProject(args); const position = this.getPositionInFile(args, file); const scriptInfo = Debug.checkDefined(project.getScriptInfo(file)); const unmappedDefinitionAndBoundSpan = project.getLanguageService().getDefinitionAndBoundSpan(file, position); if (!unmappedDefinitionAndBoundSpan || !unmappedDefinitionAndBoundSpan.definitions) { return { definitions: emptyArray2, textSpan: void 0 // TODO: GH#18217 }; } const definitions = this.mapDefinitionInfoLocations(unmappedDefinitionAndBoundSpan.definitions, project); const { textSpan } = unmappedDefinitionAndBoundSpan; if (simplifiedResult) { return { definitions: this.mapDefinitionInfo(definitions, project), textSpan: toProtocolTextSpan(textSpan, scriptInfo) }; } return { definitions: definitions.map(Session3.mapToOriginalLocation), textSpan }; } findSourceDefinition(args) { var _a; const { file, project } = this.getFileAndProject(args); const position = this.getPositionInFile(args, file); const unmappedDefinitions = project.getLanguageService().getDefinitionAtPosition(file, position); let definitions = this.mapDefinitionInfoLocations(unmappedDefinitions || emptyArray2, project).slice(); const needsJsResolution = this.projectService.serverMode === 0 /* Semantic */ && (!some(definitions, (d) => toNormalizedPath(d.fileName) !== file && !d.isAmbient) || some(definitions, (d) => !!d.failedAliasResolution)); if (needsJsResolution) { const definitionSet = createSet((d) => d.textSpan.start, documentSpansEqual); definitions == null ? void 0 : definitions.forEach((d) => definitionSet.add(d)); const noDtsProject = project.getNoDtsResolutionProject([file]); const ls = noDtsProject.getLanguageService(); const jsDefinitions = (_a = ls.getDefinitionAtPosition( file, position, /*searchOtherFilesOnly*/ true, /*stopAtAlias*/ false )) == null ? void 0 : _a.filter((d) => toNormalizedPath(d.fileName) !== file); if (some(jsDefinitions)) { for (const jsDefinition of jsDefinitions) { if (jsDefinition.unverified) { const refined = tryRefineDefinition(jsDefinition, project.getLanguageService().getProgram(), ls.getProgram()); if (some(refined)) { for (const def of refined) { definitionSet.add(def); } continue; } } definitionSet.add(jsDefinition); } } else { const ambientCandidates = definitions.filter((d) => toNormalizedPath(d.fileName) !== file && d.isAmbient); for (const candidate of some(ambientCandidates) ? ambientCandidates : getAmbientCandidatesByClimbingAccessChain()) { const fileNameToSearch = findImplementationFileFromDtsFileName(candidate.fileName, file, noDtsProject); if (!fileNameToSearch || !ensureRoot(noDtsProject, fileNameToSearch)) { continue; } const noDtsProgram = ls.getProgram(); const fileToSearch = Debug.checkDefined(noDtsProgram.getSourceFile(fileNameToSearch)); for (const match of searchForDeclaration(candidate.name, fileToSearch, noDtsProgram)) { definitionSet.add(match); } } } definitions = arrayFrom(definitionSet.values()); } definitions = definitions.filter((d) => !d.isAmbient && !d.failedAliasResolution); return this.mapDefinitionInfo(definitions, project); function findImplementationFileFromDtsFileName(fileName, resolveFromFile, auxiliaryProject) { var _a2, _b, _c; const nodeModulesPathParts = getNodeModulePathParts(fileName); if (nodeModulesPathParts && fileName.lastIndexOf(nodeModulesPathPart) === nodeModulesPathParts.topLevelNodeModulesIndex) { const packageDirectory = fileName.substring(0, nodeModulesPathParts.packageRootIndex); const packageJsonCache = (_a2 = project.getModuleResolutionCache()) == null ? void 0 : _a2.getPackageJsonInfoCache(); const compilerOptions = project.getCompilationSettings(); const packageJson = getPackageScopeForPath(getNormalizedAbsolutePath(packageDirectory + "/package.json", project.getCurrentDirectory()), getTemporaryModuleResolutionState(packageJsonCache, project, compilerOptions)); if (!packageJson) return void 0; const entrypoints = getEntrypointsFromPackageJsonInfo( packageJson, { moduleResolution: 2 /* Node10 */ }, project, project.getModuleResolutionCache() ); const packageNamePathPart = fileName.substring( nodeModulesPathParts.topLevelPackageNameIndex + 1, nodeModulesPathParts.packageRootIndex ); const packageName = getPackageNameFromTypesPackageName(unmangleScopedPackageName(packageNamePathPart)); const path = project.toPath(fileName); if (entrypoints && some(entrypoints, (e) => project.toPath(e) === path)) { return (_b = auxiliaryProject.resolutionCache.resolveSingleModuleNameWithoutWatching(packageName, resolveFromFile).resolvedModule) == null ? void 0 : _b.resolvedFileName; } else { const pathToFileInPackage = fileName.substring(nodeModulesPathParts.packageRootIndex + 1); const specifier = `${packageName}/${removeFileExtension(pathToFileInPackage)}`; return (_c = auxiliaryProject.resolutionCache.resolveSingleModuleNameWithoutWatching(specifier, resolveFromFile).resolvedModule) == null ? void 0 : _c.resolvedFileName; } } return void 0; } function getAmbientCandidatesByClimbingAccessChain() { const ls = project.getLanguageService(); const program = ls.getProgram(); const initialNode = getTouchingPropertyName(program.getSourceFile(file), position); if ((isStringLiteralLike(initialNode) || isIdentifier(initialNode)) && isAccessExpression(initialNode.parent)) { return forEachNameInAccessChainWalkingLeft(initialNode, (nameInChain) => { var _a2; if (nameInChain === initialNode) return void 0; const candidates = (_a2 = ls.getDefinitionAtPosition( file, nameInChain.getStart(), /*searchOtherFilesOnly*/ true, /*stopAtAlias*/ false )) == null ? void 0 : _a2.filter((d) => toNormalizedPath(d.fileName) !== file && d.isAmbient).map((d) => ({ fileName: d.fileName, name: getTextOfIdentifierOrLiteral(initialNode) })); if (some(candidates)) { return candidates; } }) || emptyArray2; } return emptyArray2; } function tryRefineDefinition(definition, program, noDtsProgram) { var _a2; const fileToSearch = noDtsProgram.getSourceFile(definition.fileName); if (!fileToSearch) { return void 0; } const initialNode = getTouchingPropertyName(program.getSourceFile(file), position); const symbol = program.getTypeChecker().getSymbolAtLocation(initialNode); const importSpecifier = symbol && getDeclarationOfKind(symbol, 275 /* ImportSpecifier */); if (!importSpecifier) return void 0; const nameToSearch = ((_a2 = importSpecifier.propertyName) == null ? void 0 : _a2.text) || importSpecifier.name.text; return searchForDeclaration(nameToSearch, fileToSearch, noDtsProgram); } function searchForDeclaration(declarationName, fileToSearch, noDtsProgram) { const matches = ts_FindAllReferences_exports.Core.getTopMostDeclarationNamesInFile(declarationName, fileToSearch); return mapDefined(matches, (match) => { const symbol = noDtsProgram.getTypeChecker().getSymbolAtLocation(match); const decl = getDeclarationFromName(match); if (symbol && decl) { return ts_GoToDefinition_exports.createDefinitionInfo( decl, noDtsProgram.getTypeChecker(), symbol, decl, /*unverified*/ true ); } }); } function ensureRoot(project2, fileName) { const info = project2.getScriptInfo(fileName); if (!info) return false; if (!project2.containsScriptInfo(info)) { project2.addRoot(info); project2.updateGraph(); } return true; } } getEmitOutput(args) { const { file, project } = this.getFileAndProject(args); if (!project.shouldEmitFile(project.getScriptInfo(file))) { return { emitSkipped: true, outputFiles: [], diagnostics: [] }; } const result = project.getLanguageService().getEmitOutput(file); return args.richResponse ? { ...result, diagnostics: args.includeLinePosition ? this.convertToDiagnosticsWithLinePositionFromDiagnosticFile(result.diagnostics) : result.diagnostics.map((d) => formatDiagnosticToProtocol( d, /*includeFileName*/ true )) } : result; } mapJSDocTagInfo(tags, project, richResponse) { return tags ? tags.map((tag) => { var _a; return { ...tag, text: richResponse ? this.mapDisplayParts(tag.text, project) : (_a = tag.text) == null ? void 0 : _a.map((part) => part.text).join("") }; }) : []; } mapDisplayParts(parts, project) { if (!parts) { return []; } return parts.map((part) => part.kind !== "linkName" ? part : { ...part, target: this.toFileSpan(part.target.fileName, part.target.textSpan, project) }); } mapSignatureHelpItems(items, project, richResponse) { return items.map((item) => ({ ...item, documentation: this.mapDisplayParts(item.documentation, project), parameters: item.parameters.map((p) => ({ ...p, documentation: this.mapDisplayParts(p.documentation, project) })), tags: this.mapJSDocTagInfo(item.tags, project, richResponse) })); } mapDefinitionInfo(definitions, project) { return definitions.map((def) => ({ ...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). */ static mapToOriginalLocation(def) { if (def.originalFileName) { Debug.assert(def.originalTextSpan !== void 0, "originalTextSpan should be present if originalFileName is"); return { ...def, fileName: def.originalFileName, textSpan: def.originalTextSpan, targetFileName: def.fileName, targetTextSpan: def.textSpan, contextSpan: def.originalContextSpan, targetContextSpan: def.contextSpan }; } return def; } toFileSpan(fileName, textSpan, project) { const ls = project.getLanguageService(); const start = ls.toLineColumnOffset(fileName, textSpan.start); const end = ls.toLineColumnOffset(fileName, textSpanEnd(textSpan)); return { file: fileName, start: { line: start.line + 1, offset: start.character + 1 }, end: { line: end.line + 1, offset: end.character + 1 } }; } toFileSpanWithContext(fileName, textSpan, contextSpan, project) { const fileSpan = this.toFileSpan(fileName, textSpan, project); const context = contextSpan && this.toFileSpan(fileName, contextSpan, project); return context ? { ...fileSpan, contextStart: context.start, contextEnd: context.end } : fileSpan; } getTypeDefinition(args) { const { file, project } = this.getFileAndProject(args); const position = this.getPositionInFile(args, file); const definitions = this.mapDefinitionInfoLocations(project.getLanguageService().getTypeDefinitionAtPosition(file, position) || emptyArray2, project); return this.mapDefinitionInfo(definitions, project); } mapImplementationLocations(implementations, project) { return implementations.map((info) => { const newDocumentSpan = getMappedDocumentSpanForProject(info, project); return !newDocumentSpan ? info : { ...newDocumentSpan, kind: info.kind, displayParts: info.displayParts }; }); } getImplementation(args, simplifiedResult) { const { file, project } = this.getFileAndProject(args); const position = this.getPositionInFile(args, file); const implementations = this.mapImplementationLocations(project.getLanguageService().getImplementationAtPosition(file, position) || emptyArray2, project); return simplifiedResult ? implementations.map(({ fileName, textSpan, contextSpan }) => this.toFileSpanWithContext(fileName, textSpan, contextSpan, project)) : implementations.map(Session3.mapToOriginalLocation); } getSyntacticDiagnosticsSync(args) { const { configFile } = this.getConfigFileAndProject(args); if (configFile) { return emptyArray2; } return this.getDiagnosticsWorker( args, /*isSemantic*/ false, (project, file) => project.getLanguageService().getSyntacticDiagnostics(file), !!args.includeLinePosition ); } getSemanticDiagnosticsSync(args) { const { configFile, project } = this.getConfigFileAndProject(args); if (configFile) { return this.getConfigFileDiagnostics(configFile, project, !!args.includeLinePosition); } return this.getDiagnosticsWorker( args, /*isSemantic*/ true, (project2, file) => project2.getLanguageService().getSemanticDiagnostics(file).filter((d) => !!d.file), !!args.includeLinePosition ); } getSuggestionDiagnosticsSync(args) { const { configFile } = this.getConfigFileAndProject(args); if (configFile) { return emptyArray2; } return this.getDiagnosticsWorker( args, /*isSemantic*/ true, (project, file) => project.getLanguageService().getSuggestionDiagnostics(file), !!args.includeLinePosition ); } getJsxClosingTag(args) { const { file, languageService } = this.getFileAndLanguageServiceForSyntacticOperation(args); const position = this.getPositionInFile(args, file); const tag = languageService.getJsxClosingTagAtPosition(file, position); return tag === void 0 ? void 0 : { newText: tag.newText, caretOffset: 0 }; } getLinkedEditingRange(args) { const { file, languageService } = this.getFileAndLanguageServiceForSyntacticOperation(args); const position = this.getPositionInFile(args, file); const linkedEditInfo = languageService.getLinkedEditingRangeAtPosition(file, position); const scriptInfo = this.projectService.getScriptInfoForNormalizedPath(file); if (scriptInfo === void 0 || linkedEditInfo === void 0) return void 0; return convertLinkedEditInfoToRanges(linkedEditInfo, scriptInfo); } getDocumentHighlights(args, simplifiedResult) { const { file, project } = this.getFileAndProject(args); const position = this.getPositionInFile(args, file); const documentHighlights = project.getLanguageService().getDocumentHighlights(file, position, args.filesToSearch); if (!documentHighlights) return emptyArray2; if (!simplifiedResult) return documentHighlights; return documentHighlights.map(({ fileName, highlightSpans }) => { const scriptInfo = project.getScriptInfo(fileName); return { file: fileName, highlightSpans: highlightSpans.map(({ textSpan, kind, contextSpan }) => ({ ...toProtocolTextSpanWithContext(textSpan, contextSpan, scriptInfo), kind })) }; }); } provideInlayHints(args) { const { file, project } = this.getFileAndProject(args); const scriptInfo = this.projectService.getScriptInfoForNormalizedPath(file); const hints = project.getLanguageService().provideInlayHints(file, args, this.getPreferences(file)); return hints.map((hint) => ({ ...hint, position: scriptInfo.positionToLineOffset(hint.position) })); } setCompilerOptionsForInferredProjects(args) { this.projectService.setCompilerOptionsForInferredProjects(args.options, args.projectRootPath); } getProjectInfo(args) { return this.getProjectInfoWorker( args.file, args.projectFileName, args.needFileNameList, /*excludeConfigFiles*/ false ); } getProjectInfoWorker(uncheckedFileName, projectFileName, needFileNameList, excludeConfigFiles) { const { project } = this.getFileAndProjectWorker(uncheckedFileName, projectFileName); updateProjectIfDirty(project); const projectInfo = { configFileName: project.getProjectName(), languageServiceDisabled: !project.languageServiceEnabled, fileNames: needFileNameList ? project.getFileNames( /*excludeFilesFromExternalLibraries*/ false, excludeConfigFiles ) : void 0 }; return projectInfo; } getRenameInfo(args) { const { file, project } = this.getFileAndProject(args); const position = this.getPositionInFile(args, file); const preferences = this.getPreferences(file); return project.getLanguageService().getRenameInfo(file, position, preferences); } getProjects(args, getScriptInfoEnsuringProjectsUptoDate, ignoreNoProjectError) { let projects; let symLinkedProjects; if (args.projectFileName) { const project = this.getProject(args.projectFileName); if (project) { projects = [project]; } } else { const 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, (p) => p.languageServiceEnabled && !p.isOrphan()); if (!ignoreNoProjectError && (!projects || !projects.length) && !symLinkedProjects) { this.projectService.logErrorForScriptInfoNotFound(args.file ?? args.projectFileName); return Errors.ThrowNoProject(); } return symLinkedProjects ? { projects, symLinkedProjects } : projects; } getDefaultProject(args) { if (args.projectFileName) { const project = this.getProject(args.projectFileName); if (project) { return project; } if (!args.file) { return Errors.ThrowNoProject(); } } const info = this.projectService.getScriptInfo(args.file); return info.getDefaultProject(); } getRenameLocations(args, simplifiedResult) { const file = toNormalizedPath(args.file); const position = this.getPositionInFile(args, file); const projects = this.getProjects(args); const defaultProject = this.getDefaultProject(args); const preferences = this.getPreferences(file); const renameInfo = this.mapRenameInfo( defaultProject.getLanguageService().getRenameInfo(file, position, preferences), Debug.checkDefined(this.projectService.getScriptInfo(file)) ); if (!renameInfo.canRename) return simplifiedResult ? { info: renameInfo, locs: [] } : []; const 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) }; } mapRenameInfo(info, scriptInfo) { if (info.canRename) { const { canRename, fileToRename, displayName, fullDisplayName, kind, kindModifiers, triggerSpan } = info; return identity( { canRename, fileToRename, displayName, fullDisplayName, kind, kindModifiers, triggerSpan: toProtocolTextSpan(triggerSpan, scriptInfo) } ); } else { return info; } } toSpanGroups(locations) { const map2 = /* @__PURE__ */ new Map(); for (const { fileName, textSpan, contextSpan, originalContextSpan: _2, originalTextSpan: _, originalFileName: _1, ...prefixSuffixText } of locations) { let group2 = map2.get(fileName); if (!group2) map2.set(fileName, group2 = { file: fileName, locs: [] }); const scriptInfo = Debug.checkDefined(this.projectService.getScriptInfo(fileName)); group2.locs.push({ ...toProtocolTextSpanWithContext(textSpan, contextSpan, scriptInfo), ...prefixSuffixText }); } return arrayFrom(map2.values()); } getReferences(args, simplifiedResult) { const file = toNormalizedPath(args.file); const projects = this.getProjects(args); const position = this.getPositionInFile(args, file); const references = getReferencesWorker( projects, this.getDefaultProject(args), { fileName: args.file, pos: position }, this.logger ); if (!simplifiedResult) return references; const preferences = this.getPreferences(file); const defaultProject = this.getDefaultProject(args); const scriptInfo = defaultProject.getScriptInfoForNormalizedPath(file); const nameInfo = defaultProject.getLanguageService().getQuickInfoAtPosition(file, position); const symbolDisplayString = nameInfo ? displayPartsToString(nameInfo.displayParts) : ""; const nameSpan = nameInfo && nameInfo.textSpan; const symbolStartOffset = nameSpan ? scriptInfo.positionToLineOffset(nameSpan.start).offset : 0; const symbolName2 = nameSpan ? scriptInfo.getSnapshot().getText(nameSpan.start, textSpanEnd(nameSpan)) : ""; const refs = flatMap(references, (referencedSymbol) => { return referencedSymbol.references.map((entry) => referenceEntryToReferencesResponseItem(this.projectService, entry, preferences)); }); return { refs, symbolName: symbolName2, symbolStartOffset, symbolDisplayString }; } getFileReferences(args, simplifiedResult) { const projects = this.getProjects(args); const fileName = args.file; const preferences = this.getPreferences(toNormalizedPath(fileName)); const references = []; const seen = createDocumentSpanSet(); forEachProjectInProjects( projects, /*path*/ void 0, (project) => { if (project.getCancellationToken().isCancellationRequested()) return; const projectOutputs = project.getLanguageService().getFileReferences(fileName); if (projectOutputs) { for (const referenceEntry of projectOutputs) { if (!seen.has(referenceEntry)) { references.push(referenceEntry); seen.add(referenceEntry); } } } } ); if (!simplifiedResult) return references; const refs = references.map((entry) => referenceEntryToReferencesResponseItem(this.projectService, entry, preferences)); return { refs, symbolName: `"${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 */ openClientFile(fileName, fileContent, scriptKind, projectRootPath) { this.projectService.openClientFileWithNormalizedPath( fileName, fileContent, scriptKind, /*hasMixedContent*/ false, projectRootPath ); } getPosition(args, scriptInfo) { return args.position !== void 0 ? args.position : scriptInfo.lineOffsetToPosition(args.line, args.offset); } getPositionInFile(args, file) { const scriptInfo = this.projectService.getScriptInfoForNormalizedPath(file); return this.getPosition(args, scriptInfo); } getFileAndProject(args) { return this.getFileAndProjectWorker(args.file, args.projectFileName); } getFileAndLanguageServiceForSyntacticOperation(args) { const { file, project } = this.getFileAndProject(args); return { file, languageService: project.getLanguageService( /*ensureSynchronized*/ false ) }; } getFileAndProjectWorker(uncheckedFileName, projectFileName) { const file = toNormalizedPath(uncheckedFileName); const project = this.getProject(projectFileName) || this.projectService.ensureDefaultProjectForFile(file); return { file, project }; } getOutliningSpans(args, simplifiedResult) { const { file, languageService } = this.getFileAndLanguageServiceForSyntacticOperation(args); const spans = languageService.getOutliningSpans(file); if (simplifiedResult) { const scriptInfo = this.projectService.getScriptInfoForNormalizedPath(file); return spans.map((s) => ({ textSpan: toProtocolTextSpan(s.textSpan, scriptInfo), hintSpan: toProtocolTextSpan(s.hintSpan, scriptInfo), bannerText: s.bannerText, autoCollapse: s.autoCollapse, kind: s.kind })); } else { return spans; } } getTodoComments(args) { const { file, project } = this.getFileAndProject(args); return project.getLanguageService().getTodoComments(file, args.descriptors); } getDocCommentTemplate(args) { const { file, languageService } = this.getFileAndLanguageServiceForSyntacticOperation(args); const position = this.getPositionInFile(args, file); return languageService.getDocCommentTemplateAtPosition(file, position, this.getPreferences(file), this.getFormatOptions(file)); } getSpanOfEnclosingComment(args) { const { file, languageService } = this.getFileAndLanguageServiceForSyntacticOperation(args); const onlyMultiLine = args.onlyMultiLine; const position = this.getPositionInFile(args, file); return languageService.getSpanOfEnclosingComment(file, position, onlyMultiLine); } getIndentation(args) { const { file, languageService } = this.getFileAndLanguageServiceForSyntacticOperation(args); const position = this.getPositionInFile(args, file); const options = args.options ? convertFormatOptions(args.options) : this.getFormatOptions(file); const indentation = languageService.getIndentationAtPosition(file, position, options); return { position, indentation }; } getBreakpointStatement(args) { const { file, languageService } = this.getFileAndLanguageServiceForSyntacticOperation(args); const position = this.getPositionInFile(args, file); return languageService.getBreakpointStatementAtPosition(file, position); } getNameOrDottedNameSpan(args) { const { file, languageService } = this.getFileAndLanguageServiceForSyntacticOperation(args); const position = this.getPositionInFile(args, file); return languageService.getNameOrDottedNameSpan(file, position, position); } isValidBraceCompletion(args) { const { file, languageService } = this.getFileAndLanguageServiceForSyntacticOperation(args); const position = this.getPositionInFile(args, file); return languageService.isValidBraceCompletionAtPosition(file, position, args.openingBrace.charCodeAt(0)); } getQuickInfoWorker(args, simplifiedResult) { const { file, project } = this.getFileAndProject(args); const scriptInfo = this.projectService.getScriptInfoForNormalizedPath(file); const quickInfo = project.getLanguageService().getQuickInfoAtPosition(file, this.getPosition(args, scriptInfo)); if (!quickInfo) { return void 0; } const useDisplayParts = !!this.getPreferences(file).displayPartsForJSDoc; if (simplifiedResult) { const displayString = displayPartsToString(quickInfo.displayParts); return { kind: quickInfo.kind, kindModifiers: quickInfo.kindModifiers, start: scriptInfo.positionToLineOffset(quickInfo.textSpan.start), end: scriptInfo.positionToLineOffset(textSpanEnd(quickInfo.textSpan)), displayString, documentation: useDisplayParts ? this.mapDisplayParts(quickInfo.documentation, project) : displayPartsToString(quickInfo.documentation), tags: this.mapJSDocTagInfo(quickInfo.tags, project, useDisplayParts) }; } else { return useDisplayParts ? quickInfo : { ...quickInfo, tags: this.mapJSDocTagInfo( quickInfo.tags, project, /*richResponse*/ false ) }; } } getFormattingEditsForRange(args) { const { file, languageService } = this.getFileAndLanguageServiceForSyntacticOperation(args); const scriptInfo = this.projectService.getScriptInfoForNormalizedPath(file); const startPosition = scriptInfo.lineOffsetToPosition(args.line, args.offset); const endPosition = scriptInfo.lineOffsetToPosition(args.endLine, args.endOffset); const edits = languageService.getFormattingEditsForRange(file, startPosition, endPosition, this.getFormatOptions(file)); if (!edits) { return void 0; } return edits.map((edit) => this.convertTextChangeToCodeEdit(edit, scriptInfo)); } getFormattingEditsForRangeFull(args) { const { file, languageService } = this.getFileAndLanguageServiceForSyntacticOperation(args); const options = args.options ? convertFormatOptions(args.options) : this.getFormatOptions(file); return languageService.getFormattingEditsForRange(file, args.position, args.endPosition, options); } getFormattingEditsForDocumentFull(args) { const { file, languageService } = this.getFileAndLanguageServiceForSyntacticOperation(args); const options = args.options ? convertFormatOptions(args.options) : this.getFormatOptions(file); return languageService.getFormattingEditsForDocument(file, options); } getFormattingEditsAfterKeystrokeFull(args) { const { file, languageService } = this.getFileAndLanguageServiceForSyntacticOperation(args); const options = args.options ? convertFormatOptions(args.options) : this.getFormatOptions(file); return languageService.getFormattingEditsAfterKeystroke(file, args.position, args.key, options); } getFormattingEditsAfterKeystroke(args) { const { file, languageService } = this.getFileAndLanguageServiceForSyntacticOperation(args); const scriptInfo = this.projectService.getScriptInfoForNormalizedPath(file); const position = scriptInfo.lineOffsetToPosition(args.line, args.offset); const formatOptions = this.getFormatOptions(file); const edits = languageService.getFormattingEditsAfterKeystroke( file, position, args.key, formatOptions ); if (args.key === "\n" && (!edits || edits.length === 0 || allEditsBeforePos(edits, position))) { const { lineText, absolutePosition } = scriptInfo.textStorage.getAbsolutePositionAndLineText(args.line); if (lineText && lineText.search("\\S") < 0) { const preferredIndent = languageService.getIndentationAtPosition(file, position, formatOptions); let hasIndent = 0; let i, len; 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) { const firstNoWhiteSpacePosition = absolutePosition + i; edits.push({ span: createTextSpanFromBounds(absolutePosition, firstNoWhiteSpacePosition), newText: ts_formatting_exports.getIndentationString(preferredIndent, formatOptions) }); } } } if (!edits) { return void 0; } return edits.map((edit) => { return { start: scriptInfo.positionToLineOffset(edit.span.start), end: scriptInfo.positionToLineOffset(textSpanEnd(edit.span)), newText: edit.newText ? edit.newText : "" }; }); } getCompletions(args, kind) { const { file, project } = this.getFileAndProject(args); const scriptInfo = this.projectService.getScriptInfoForNormalizedPath(file); const position = this.getPosition(args, scriptInfo); const completions = project.getLanguageService().getCompletionsAtPosition( file, position, { ...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; const prefix = args.prefix || ""; const entries = mapDefined(completions.entries, (entry) => { if (completions.isMemberCompletion || startsWith(entry.name.toLowerCase(), prefix.toLowerCase())) { const { name, kind: kind2, kindModifiers, sortText, insertText, replacementSpan, hasAction, source, sourceDisplay, labelDetails, isSnippet, isRecommended, isPackageJsonImport, isImportStatementCompletion, data } = entry; const convertedSpan = replacementSpan ? toProtocolTextSpan(replacementSpan, scriptInfo) : void 0; return { name, kind: kind2, kindModifiers, sortText, insertText, replacementSpan: convertedSpan, isSnippet, hasAction: hasAction || void 0, source, sourceDisplay, labelDetails, isRecommended, isPackageJsonImport, isImportStatementCompletion, data }; } }); if (kind === "completions" /* Completions */) { if (completions.metadata) entries.metadata = completions.metadata; return entries; } const res = { ...completions, optionalReplacementSpan: completions.optionalReplacementSpan && toProtocolTextSpan(completions.optionalReplacementSpan, scriptInfo), entries }; return res; } getCompletionEntryDetails(args, fullResult) { const { file, project } = this.getFileAndProject(args); const scriptInfo = this.projectService.getScriptInfoForNormalizedPath(file); const position = this.getPosition(args, scriptInfo); const formattingOptions = project.projectService.getFormatCodeOptions(file); const useDisplayParts = !!this.getPreferences(file).displayPartsForJSDoc; const result = mapDefined(args.entryNames, (entryName) => { const { name, source, data } = typeof entryName === "string" ? { name: entryName, source: void 0, data: void 0 } : entryName; return project.getLanguageService().getCompletionEntryDetails(file, position, name, formattingOptions, source, this.getPreferences(file), data ? cast(data, isCompletionEntryData) : void 0); }); return fullResult ? useDisplayParts ? result : result.map((details) => ({ ...details, tags: this.mapJSDocTagInfo( details.tags, project, /*richResponse*/ false ) })) : result.map((details) => ({ ...details, codeActions: map(details.codeActions, (action) => this.mapCodeAction(action)), documentation: this.mapDisplayParts(details.documentation, project), tags: this.mapJSDocTagInfo(details.tags, project, useDisplayParts) })); } getCompileOnSaveAffectedFileList(args) { const projects = this.getProjects( args, /*getScriptInfoEnsuringProjectsUptoDate*/ true, /*ignoreNoProjectError*/ true ); const info = this.projectService.getScriptInfo(args.file); if (!info) { return emptyArray2; } return combineProjectOutput( info, (path) => this.projectService.getScriptInfoForPath(path), projects, (project, info2) => { if (!project.compileOnSaveEnabled || !project.languageServiceEnabled || project.isOrphan()) { return void 0; } const 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) }; } ); } emitFile(args) { const { file, project } = this.getFileAndProject(args); if (!project) { Errors.ThrowNoProject(); } if (!project.languageServiceEnabled) { return args.richResponse ? { emitSkipped: true, diagnostics: [] } : false; } const scriptInfo = project.getScriptInfo(file); const { emitSkipped, diagnostics } = project.emitFile(scriptInfo, (path, data, writeByteOrderMark) => this.host.writeFile(path, data, writeByteOrderMark)); return args.richResponse ? { emitSkipped, diagnostics: args.includeLinePosition ? this.convertToDiagnosticsWithLinePositionFromDiagnosticFile(diagnostics) : diagnostics.map((d) => formatDiagnosticToProtocol( d, /*includeFileName*/ true )) } : !emitSkipped; } getSignatureHelpItems(args, simplifiedResult) { const { file, project } = this.getFileAndProject(args); const scriptInfo = this.projectService.getScriptInfoForNormalizedPath(file); const position = this.getPosition(args, scriptInfo); const helpItems = project.getLanguageService().getSignatureHelpItems(file, position, args); const useDisplayParts = !!this.getPreferences(file).displayPartsForJSDoc; if (helpItems && simplifiedResult) { const span = helpItems.applicableSpan; return { ...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 { ...helpItems, items: helpItems.items.map((item) => ({ ...item, tags: this.mapJSDocTagInfo( item.tags, project, /*richResponse*/ false ) })) }; } } toPendingErrorCheck(uncheckedFileName) { const fileName = toNormalizedPath(uncheckedFileName); const project = this.projectService.tryGetDefaultProjectForFile(fileName); return project && { fileName, project }; } getDiagnostics(next, delay, fileNames) { if (this.suppressDiagnosticEvents) { return; } if (fileNames.length > 0) { this.updateErrorCheck(next, fileNames, delay); } } change(args) { const scriptInfo = this.projectService.getScriptInfo(args.file); Debug.assert(!!scriptInfo); scriptInfo.textStorage.switchToScriptVersionCache(); const start = scriptInfo.lineOffsetToPosition(args.line, args.offset); const end = scriptInfo.lineOffsetToPosition(args.endLine, args.endOffset); if (start >= 0) { this.changeSeq++; this.projectService.applyChangesToFile(scriptInfo, singleIterator({ span: { start, length: end - start }, newText: args.insertString // TODO: GH#18217 })); } } reload(args, reqSeq) { const file = toNormalizedPath(args.file); const tempFileName = args.tmpfile === void 0 ? void 0 : toNormalizedPath(args.tmpfile); const info = this.projectService.getScriptInfoForNormalizedPath(file); if (info) { this.changeSeq++; if (info.reloadFromFile(tempFileName)) { this.doOutput( /*info*/ void 0, "reload" /* Reload */, reqSeq, /*success*/ true ); } } } saveToTmp(fileName, tempFileName) { const scriptInfo = this.projectService.getScriptInfo(fileName); if (scriptInfo) { scriptInfo.saveTo(tempFileName); } } closeClientFile(fileName) { if (!fileName) { return; } const file = normalizePath(fileName); this.projectService.closeClientFile(file); } mapLocationNavigationBarItems(items, scriptInfo) { return map(items, (item) => ({ text: item.text, kind: item.kind, kindModifiers: item.kindModifiers, spans: item.spans.map((span) => toProtocolTextSpan(span, scriptInfo)), childItems: this.mapLocationNavigationBarItems(item.childItems, scriptInfo), indent: item.indent })); } getNavigationBarItems(args, simplifiedResult) { const { file, languageService } = this.getFileAndLanguageServiceForSyntacticOperation(args); const items = languageService.getNavigationBarItems(file); return !items ? void 0 : simplifiedResult ? this.mapLocationNavigationBarItems(items, this.projectService.getScriptInfoForNormalizedPath(file)) : items; } toLocationNavigationTree(tree, scriptInfo) { return { text: tree.text, kind: tree.kind, kindModifiers: tree.kindModifiers, spans: tree.spans.map((span) => toProtocolTextSpan(span, scriptInfo)), nameSpan: tree.nameSpan && toProtocolTextSpan(tree.nameSpan, scriptInfo), childItems: map(tree.childItems, (item) => this.toLocationNavigationTree(item, scriptInfo)) }; } getNavigationTree(args, simplifiedResult) { const { file, languageService } = this.getFileAndLanguageServiceForSyntacticOperation(args); const tree = languageService.getNavigationTree(file); return !tree ? void 0 : simplifiedResult ? this.toLocationNavigationTree(tree, this.projectService.getScriptInfoForNormalizedPath(file)) : tree; } getNavigateToItems(args, simplifiedResult) { const full = this.getFullNavigateToItems(args); return !simplifiedResult ? flatMap(full, ({ navigateToItems }) => navigateToItems) : flatMap( full, ({ project, navigateToItems }) => navigateToItems.map((navItem) => { const scriptInfo = project.getScriptInfo(navItem.fileName); const 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; }) ); } getFullNavigateToItems(args) { const { currentFileOnly, searchValue, maxResultCount, projectFileName } = args; if (currentFileOnly) { Debug.assertIsDefined(args.file); const { file, project } = this.getFileAndProject(args); return [{ project, navigateToItems: project.getLanguageService().getNavigateToItems(searchValue, maxResultCount, file) }]; } const outputs = []; const seenItems = /* @__PURE__ */ new Map(); if (!args.file && !projectFileName) { this.projectService.loadAncestorProjectTree(); this.projectService.forEachEnabledProject((project) => addItemsForProject(project)); } else { const projects = this.getProjects(args); forEachProjectInProjects( projects, /*path*/ void 0, (project) => addItemsForProject(project) ); } return outputs; function addItemsForProject(project) { const projectItems = project.getLanguageService().getNavigateToItems( searchValue, maxResultCount, /*fileName*/ void 0, /*excludeDts*/ project.isNonTsProject() ); const unseenItems = filter(projectItems, (item) => tryAddSeenItem(item) && !getMappedLocationForProject(documentSpanLocation(item), project)); if (unseenItems.length) { outputs.push({ project, navigateToItems: unseenItems }); } } function tryAddSeenItem(item) { const name = item.name; if (!seenItems.has(name)) { seenItems.set(name, [item]); return true; } const seen = seenItems.get(name); for (const seenItem of seen) { if (navigateToItemIsEqualTo(seenItem, item)) { return false; } } 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; } } getSupportedCodeFixes(args) { if (!args) return getSupportedCodeFixes(); if (args.file) { const { file, project: project2 } = this.getFileAndProject(args); return project2.getLanguageService().getSupportedCodeFixes(file); } const project = this.getProject(args.projectFileName); if (!project) Errors.ThrowNoProject(); return project.getLanguageService().getSupportedCodeFixes(); } isLocation(locationOrSpan) { return locationOrSpan.line !== void 0; } extractPositionOrRange(args, scriptInfo) { let position; let 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); } } getRange(args, scriptInfo) { const { startPosition, endPosition } = this.getStartAndEndPosition(args, scriptInfo); return { pos: startPosition, end: endPosition }; } getApplicableRefactors(args) { const { file, project } = this.getFileAndProject(args); const scriptInfo = project.getScriptInfoForNormalizedPath(file); return project.getLanguageService().getApplicableRefactors(file, this.extractPositionOrRange(args, scriptInfo), this.getPreferences(file), args.triggerReason, args.kind, args.includeInteractiveActions); } getEditsForRefactor(args, simplifiedResult) { const { file, project } = this.getFileAndProject(args); const scriptInfo = project.getScriptInfoForNormalizedPath(file); const 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) { const { renameFilename, renameLocation, edits } = result; let mappedRenameLocation; if (renameFilename !== void 0 && renameLocation !== void 0) { const renameScriptInfo = project.getScriptInfoForNormalizedPath(toNormalizedPath(renameFilename)); mappedRenameLocation = getLocationInNewDocument(getSnapshotText(renameScriptInfo.getSnapshot()), renameFilename, renameLocation, edits); } return { renameLocation: mappedRenameLocation, renameFilename, edits: this.mapTextChangesToCodeEdits(edits), notApplicableReason: result.notApplicableReason }; } return result; } getMoveToRefactoringFileSuggestions(args) { const { file, project } = this.getFileAndProject(args); const scriptInfo = project.getScriptInfoForNormalizedPath(file); return project.getLanguageService().getMoveToRefactoringFileSuggestions(file, this.extractPositionOrRange(args, scriptInfo), this.getPreferences(file)); } organizeImports(args, simplifiedResult) { Debug.assert(args.scope.type === "file"); const { file, project } = this.getFileAndProject(args.scope.args); const changes = project.getLanguageService().organizeImports( { fileName: file, mode: args.mode ?? (args.skipDestructiveCodeActions ? "SortAndCombine" /* SortAndCombine */ : void 0), type: "file" }, this.getFormatOptions(file), this.getPreferences(file) ); if (simplifiedResult) { return this.mapTextChangesToCodeEdits(changes); } else { return changes; } } getEditsForFileRename(args, simplifiedResult) { const oldPath = toNormalizedPath(args.oldFilePath); const newPath = toNormalizedPath(args.newFilePath); const formatOptions = this.getHostFormatOptions(); const preferences = this.getHostPreferences(); const seenFiles = /* @__PURE__ */ new Set(); const textChanges2 = []; this.projectService.loadAncestorProjectTree(); this.projectService.forEachEnabledProject((project) => { const projectTextChanges = project.getLanguageService().getEditsForFileRename(oldPath, newPath, formatOptions, preferences); const projectFiles = []; for (const textChange of projectTextChanges) { if (!seenFiles.has(textChange.fileName)) { textChanges2.push(textChange); projectFiles.push(textChange.fileName); } } for (const file of projectFiles) { seenFiles.add(file); } }); return simplifiedResult ? textChanges2.map((c) => this.mapTextChangeToCodeEdit(c)) : textChanges2; } getCodeFixes(args, simplifiedResult) { const { file, project } = this.getFileAndProject(args); const scriptInfo = project.getScriptInfoForNormalizedPath(file); const { startPosition, endPosition } = this.getStartAndEndPosition(args, scriptInfo); let codeActions; try { codeActions = project.getLanguageService().getCodeFixesAtPosition(file, startPosition, endPosition, args.errorCodes, this.getFormatOptions(file), this.getPreferences(file)); } catch (e) { const ls = project.getLanguageService(); const existingDiagCodes = [ ...ls.getSyntacticDiagnostics(file), ...ls.getSemanticDiagnostics(file), ...ls.getSuggestionDiagnostics(file) ].map((d) => decodedTextSpanIntersectsWith(startPosition, endPosition - startPosition, d.start, d.length) && d.code); const badCode = args.errorCodes.find((c) => !existingDiagCodes.includes(c)); if (badCode !== void 0) { e.message = `BADCLIENT: Bad error code, ${badCode} not found in range ${startPosition}..${endPosition} (found: ${existingDiagCodes.join(", ")}); could have caused this error: ${e.message}`; } throw e; } return simplifiedResult ? codeActions.map((codeAction) => this.mapCodeFixAction(codeAction)) : codeActions; } getCombinedCodeFix({ scope, fixId: fixId52 }, simplifiedResult) { Debug.assert(scope.type === "file"); const { file, project } = this.getFileAndProject(scope.args); const 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; } } applyCodeActionCommand(args) { const commands = args.command; for (const command of toArray(commands)) { const { file, project } = this.getFileAndProject(command); project.getLanguageService().applyCodeActionCommand(command, this.getFormatOptions(file)).then( (_result) => { }, (_error) => { } ); } return {}; } getStartAndEndPosition(args, scriptInfo) { let 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, endPosition }; } mapCodeAction({ description: description3, changes, commands }) { return { description: description3, changes: this.mapTextChangesToCodeEdits(changes), commands }; } mapCodeFixAction({ fixName: fixName8, description: description3, changes, commands, fixId: fixId52, fixAllDescription }) { return { fixName: fixName8, description: description3, changes: this.mapTextChangesToCodeEdits(changes), commands, fixId: fixId52, fixAllDescription }; } mapTextChangesToCodeEdits(textChanges2) { return textChanges2.map((change) => this.mapTextChangeToCodeEdit(change)); } mapTextChangeToCodeEdit(textChanges2) { const 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((textChange) => convertTextChangeToCodeEdit(textChange, scriptInfo)) } : convertNewFileTextChangeToCodeEdit(textChanges2); } convertTextChangeToCodeEdit(change, scriptInfo) { return { start: scriptInfo.positionToLineOffset(change.span.start), end: scriptInfo.positionToLineOffset(change.span.start + change.span.length), newText: change.newText ? change.newText : "" }; } getBraceMatching(args, simplifiedResult) { const { file, languageService } = this.getFileAndLanguageServiceForSyntacticOperation(args); const scriptInfo = this.projectService.getScriptInfoForNormalizedPath(file); const position = this.getPosition(args, scriptInfo); const spans = languageService.getBraceMatchingAtPosition(file, position); return !spans ? void 0 : simplifiedResult ? spans.map((span) => toProtocolTextSpan(span, scriptInfo)) : spans; } getDiagnosticsForProject(next, delay, fileName) { if (this.suppressDiagnosticEvents) { return; } const { fileNames, languageServiceDisabled } = this.getProjectInfoWorker( fileName, /*projectFileName*/ void 0, /*needFileNameList*/ true, /*excludeConfigFiles*/ true ); if (languageServiceDisabled) { return; } const fileNamesInProject = fileNames.filter((value) => !stringContains(value, "lib.d.ts")); if (fileNamesInProject.length === 0) { return; } const highPriorityFiles = []; const mediumPriorityFiles = []; const lowPriorityFiles = []; const veryLowPriorityFiles = []; const normalizedFileName = toNormalizedPath(fileName); const project = this.projectService.ensureDefaultProjectForFile(normalizedFileName); for (const fileNameInProject of fileNamesInProject) { if (this.getCanonicalFileName(fileNameInProject) === this.getCanonicalFileName(fileName)) { highPriorityFiles.push(fileNameInProject); } else { const info = this.projectService.getScriptInfo(fileNameInProject); if (!info.isScriptOpen()) { if (isDeclarationFileName(fileNameInProject)) { veryLowPriorityFiles.push(fileNameInProject); } else { lowPriorityFiles.push(fileNameInProject); } } else { mediumPriorityFiles.push(fileNameInProject); } } } const sortedFiles = [...highPriorityFiles, ...mediumPriorityFiles, ...lowPriorityFiles, ...veryLowPriorityFiles]; const checkList = sortedFiles.map((fileName2) => ({ fileName: fileName2, project })); this.updateErrorCheck( next, checkList, delay, /*requireOpen*/ false ); } configurePlugin(args) { this.projectService.configurePlugin(args); } getSmartSelectionRange(args, simplifiedResult) { const { locations } = args; const { file, languageService } = this.getFileAndLanguageServiceForSyntacticOperation(args); const scriptInfo = Debug.checkDefined(this.projectService.getScriptInfo(file)); return map(locations, (location) => { const pos = this.getPosition(location, scriptInfo); const selectionRange = languageService.getSmartSelectionRange(file, pos); return simplifiedResult ? this.mapSelectionRange(selectionRange, scriptInfo) : selectionRange; }); } toggleLineComment(args, simplifiedResult) { const { file, languageService } = this.getFileAndLanguageServiceForSyntacticOperation(args); const scriptInfo = this.projectService.getScriptInfo(file); const textRange = this.getRange(args, scriptInfo); const textChanges2 = languageService.toggleLineComment(file, textRange); if (simplifiedResult) { const scriptInfo2 = this.projectService.getScriptInfoForNormalizedPath(file); return textChanges2.map((textChange) => this.convertTextChangeToCodeEdit(textChange, scriptInfo2)); } return textChanges2; } toggleMultilineComment(args, simplifiedResult) { const { file, languageService } = this.getFileAndLanguageServiceForSyntacticOperation(args); const scriptInfo = this.projectService.getScriptInfoForNormalizedPath(file); const textRange = this.getRange(args, scriptInfo); const textChanges2 = languageService.toggleMultilineComment(file, textRange); if (simplifiedResult) { const scriptInfo2 = this.projectService.getScriptInfoForNormalizedPath(file); return textChanges2.map((textChange) => this.convertTextChangeToCodeEdit(textChange, scriptInfo2)); } return textChanges2; } commentSelection(args, simplifiedResult) { const { file, languageService } = this.getFileAndLanguageServiceForSyntacticOperation(args); const scriptInfo = this.projectService.getScriptInfoForNormalizedPath(file); const textRange = this.getRange(args, scriptInfo); const textChanges2 = languageService.commentSelection(file, textRange); if (simplifiedResult) { const scriptInfo2 = this.projectService.getScriptInfoForNormalizedPath(file); return textChanges2.map((textChange) => this.convertTextChangeToCodeEdit(textChange, scriptInfo2)); } return textChanges2; } uncommentSelection(args, simplifiedResult) { const { file, languageService } = this.getFileAndLanguageServiceForSyntacticOperation(args); const scriptInfo = this.projectService.getScriptInfoForNormalizedPath(file); const textRange = this.getRange(args, scriptInfo); const textChanges2 = languageService.uncommentSelection(file, textRange); if (simplifiedResult) { const scriptInfo2 = this.projectService.getScriptInfoForNormalizedPath(file); return textChanges2.map((textChange) => this.convertTextChangeToCodeEdit(textChange, scriptInfo2)); } return textChanges2; } mapSelectionRange(selectionRange, scriptInfo) { const result = { textSpan: toProtocolTextSpan(selectionRange.textSpan, scriptInfo) }; if (selectionRange.parent) { result.parent = this.mapSelectionRange(selectionRange.parent, scriptInfo); } return result; } getScriptInfoFromProjectService(file) { const normalizedFile = toNormalizedPath(file); const scriptInfo = this.projectService.getScriptInfoForNormalizedPath(normalizedFile); if (!scriptInfo) { this.projectService.logErrorForScriptInfoNotFound(normalizedFile); return Errors.ThrowNoProject(); } return scriptInfo; } toProtocolCallHierarchyItem(item) { const 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) }; } toProtocolCallHierarchyIncomingCall(incomingCall) { const scriptInfo = this.getScriptInfoFromProjectService(incomingCall.from.file); return { from: this.toProtocolCallHierarchyItem(incomingCall.from), fromSpans: incomingCall.fromSpans.map((fromSpan) => toProtocolTextSpan(fromSpan, scriptInfo)) }; } toProtocolCallHierarchyOutgoingCall(outgoingCall, scriptInfo) { return { to: this.toProtocolCallHierarchyItem(outgoingCall.to), fromSpans: outgoingCall.fromSpans.map((fromSpan) => toProtocolTextSpan(fromSpan, scriptInfo)) }; } prepareCallHierarchy(args) { const { file, project } = this.getFileAndProject(args); const scriptInfo = this.projectService.getScriptInfoForNormalizedPath(file); if (scriptInfo) { const position = this.getPosition(args, scriptInfo); const result = project.getLanguageService().prepareCallHierarchy(file, position); return result && mapOneOrMany(result, (item) => this.toProtocolCallHierarchyItem(item)); } return void 0; } provideCallHierarchyIncomingCalls(args) { const { file, project } = this.getFileAndProject(args); const scriptInfo = this.getScriptInfoFromProjectService(file); const incomingCalls = project.getLanguageService().provideCallHierarchyIncomingCalls(file, this.getPosition(args, scriptInfo)); return incomingCalls.map((call) => this.toProtocolCallHierarchyIncomingCall(call)); } provideCallHierarchyOutgoingCalls(args) { const { file, project } = this.getFileAndProject(args); const scriptInfo = this.getScriptInfoFromProjectService(file); const outgoingCalls = project.getLanguageService().provideCallHierarchyOutgoingCalls(file, this.getPosition(args, scriptInfo)); return outgoingCalls.map((call) => this.toProtocolCallHierarchyOutgoingCall(call, scriptInfo)); } getCanonicalFileName(fileName) { const name = this.host.useCaseSensitiveFileNames ? fileName : toFileNameLowerCase(fileName); return normalizePath(name); } exit() { } notRequired() { return { responseRequired: false }; } requiredResponse(response) { return { response, responseRequired: true }; } addProtocolHandler(command, handler) { if (this.handlers.has(command)) { throw new Error(`Protocol handler already exists for command "${command}"`); } this.handlers.set(command, handler); } setCurrentRequest(requestId) { Debug.assert(this.currentRequestId === void 0); this.currentRequestId = requestId; this.cancellationToken.setRequest(requestId); } resetCurrentRequest(requestId) { Debug.assert(this.currentRequestId === requestId); this.currentRequestId = void 0; this.cancellationToken.resetRequest(requestId); } executeWithRequestId(requestId, f) { try { this.setCurrentRequest(requestId); return f(); } finally { this.resetCurrentRequest(requestId); } } executeCommand(request) { const handler = this.handlers.get(request.command); if (handler) { const response = this.executeWithRequestId(request.seq, () => handler(request)); this.projectService.enableRequestedPlugins(); return response; } else { this.logger.msg(`Unrecognized JSON command:${stringifyIndented(request)}`, "Err" /* Err */); this.doOutput( /*info*/ void 0, "unknown" /* Unknown */, request.seq, /*success*/ false, `Unrecognized JSON command: ${request.command}` ); return { responseRequired: false }; } } onMessage(message) { var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k; this.gcTimer.scheduleCollect(); this.performanceData = void 0; let start; if (this.logger.hasLevel(2 /* requestTime */)) { start = this.hrtime(); if (this.logger.hasLevel(3 /* verbose */)) { this.logger.info(`request:${indent2(this.toStringMessage(message))}`); } } let request; let 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 ); const { response, responseRequired } = this.executeCommand(request); (_d = tracing) == null ? void 0 : _d.pop(); if (this.logger.hasLevel(2 /* requestTime */)) { const elapsedTime = hrTimeToMilliseconds(this.hrtime(start)).toFixed(4); if (responseRequired) { this.logger.perftrc(`${request.seq}::${request.command}: elapsed time (in milliseconds) ${elapsedTime}`); } else { this.logger.perftrc(`${request.seq}::${request.command}: async elapsed time (in milliseconds) ${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 ); } } parseMessage(message) { return JSON.parse(message); } toStringMessage(message) { return message; } getFormatOptions(file) { return this.projectService.getFormatCodeOptions(file); } getPreferences(file) { return this.projectService.getPreferences(file); } getHostFormatOptions() { return this.projectService.getHostFormatCodeOptions(); } getHostPreferences() { return this.projectService.getHostPreferences(); } }; } }); // src/server/scriptVersionCache.ts var lineCollectionCapacity, CharRangeSection, EditWalker, TextChange9, _ScriptVersionCache, ScriptVersionCache, LineIndexSnapshot, LineIndex, LineNode, LineLeaf; var init_scriptVersionCache = __esm({ "src/server/scriptVersionCache.ts"() { "use strict"; init_ts7(); init_ts_server3(); lineCollectionCapacity = 4; CharRangeSection = /* @__PURE__ */ ((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 || {}); EditWalker = class { constructor() { 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]; } get done() { return false; } insertLines(insertedText, suppressTrailingText) { if (suppressTrailingText) { this.trailingText = ""; } if (insertedText) { insertedText = this.initialText + insertedText + this.trailingText; } else { insertedText = this.initialText + this.trailingText; } const lm = LineIndex.linesFromText(insertedText); const lines = lm.lines; if (lines.length > 1 && lines[lines.length - 1] === "") { lines.pop(); } let branchParent; let lastZeroCount; for (let 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); } const leafNode = this.startPath[this.startPath.length - 1]; if (lines.length > 0) { leafNode.text = lines[0]; if (lines.length > 1) { let insertedNodes = new Array(lines.length - 1); let startNode2 = leafNode; for (let i = 1; i < lines.length; i++) { insertedNodes[i - 1] = new LineLeaf(lines[i]); } let pathIndex = this.startPath.length - 2; while (pathIndex >= 0) { const insertionNode = this.startPath[pathIndex]; insertedNodes = insertionNode.insertAt(startNode2, insertedNodes); pathIndex--; startNode2 = insertionNode; } let insertedNodesLen = insertedNodes.length; while (insertedNodesLen > 0) { const 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 (let j = this.startPath.length - 2; j >= 0; j--) { this.startPath[j].updateCounts(); } } } else { const insertionNode = this.startPath[this.startPath.length - 2]; insertionNode.remove(leafNode); for (let j = this.startPath.length - 2; j >= 0; j--) { this.startPath[j].updateCounts(); } } return this.lineIndex; } post(_relativeStart, _relativeLength, lineCollection) { if (lineCollection === this.lineCollectionAtBranch) { this.state = 4 /* End */; } this.stack.pop(); } pre(_relativeStart, _relativeLength, lineCollection, _parent, nodeType) { const 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; } let 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 leaf(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); } } }; TextChange9 = class { constructor(pos, deleteLen, insertedText) { this.pos = pos; this.deleteLen = deleteLen; this.insertedText = insertedText; } getTextChangeRange() { return createTextChangeRange( createTextSpan(this.pos, this.deleteLen), this.insertedText ? this.insertedText.length : 0 ); } }; _ScriptVersionCache = class { constructor() { this.changes = []; this.versions = new Array(_ScriptVersionCache.maxVersions); this.minVersion = 0; // no versions earlier than min version will maintain change history this.currentVersion = 0; } versionToIndex(version2) { if (version2 < this.minVersion || version2 > this.currentVersion) { return void 0; } return version2 % _ScriptVersionCache.maxVersions; } currentVersionToIndex() { return this.currentVersion % _ScriptVersionCache.maxVersions; } // REVIEW: can optimize by coalescing simple edits edit(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(); } } getSnapshot() { return this._getSnapshot(); } _getSnapshot() { let snap = this.versions[this.currentVersionToIndex()]; if (this.changes.length > 0) { let snapIndex = snap.index; for (const change of this.changes) { snapIndex = snapIndex.edit(change.pos, change.deleteLen, change.insertedText); } 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; } getSnapshotVersion() { return this._getSnapshot().version; } getAbsolutePositionAndLineText(oneBasedLine) { return this._getSnapshot().index.lineNumberToInfo(oneBasedLine); } lineOffsetToPosition(line, column) { return this._getSnapshot().index.absolutePositionOfStartOfLine(line) + (column - 1); } positionToLineOffset(position) { return this._getSnapshot().index.positionToLineOffset(position); } lineToTextSpan(line) { const index = this._getSnapshot().index; const { lineText, absolutePosition } = index.lineNumberToInfo(line + 1); const len = lineText !== void 0 ? lineText.length : index.absolutePositionOfStartOfLine(line + 2) - absolutePosition; return createTextSpan(absolutePosition, len); } getTextChangesBetweenVersions(oldVersion, newVersion) { if (oldVersion < newVersion) { if (oldVersion >= this.minVersion) { const textChangeRanges = []; for (let i = oldVersion + 1; i <= newVersion; i++) { const snap = this.versions[this.versionToIndex(i)]; for (const textChange of snap.changesSincePreviousVersion) { textChangeRanges.push(textChange.getTextChangeRange()); } } return collapseTextChangeRangesAcrossMultipleVersions(textChangeRanges); } else { return void 0; } } else { return unchangedTextChangeRange; } } getLineCount() { return this._getSnapshot().index.getLineCount(); } static fromString(script) { const svc = new _ScriptVersionCache(); const snap = new LineIndexSnapshot(0, svc, new LineIndex()); svc.versions[svc.currentVersion] = snap; const lm = LineIndex.linesFromText(script); snap.index.load(lm.lines); return svc; } }; ScriptVersionCache = _ScriptVersionCache; ScriptVersionCache.changeNumberThreshold = 8; ScriptVersionCache.changeLengthThreshold = 256; ScriptVersionCache.maxVersions = 8; LineIndexSnapshot = class { constructor(version2, cache, index, changesSincePreviousVersion = emptyArray2) { this.version = version2; this.cache = cache; this.index = index; this.changesSincePreviousVersion = changesSincePreviousVersion; } getText(rangeStart, rangeEnd) { return this.index.getText(rangeStart, rangeEnd - rangeStart); } getLength() { return this.index.getLength(); } getChangeRange(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); } } } }; LineIndex = class { constructor() { // set this to true to check each edit for accuracy this.checkEdits = false; } absolutePositionOfStartOfLine(oneBasedLine) { return this.lineNumberToInfo(oneBasedLine).absolutePosition; } positionToLineOffset(position) { const { oneBasedLine, zeroBasedColumn } = this.root.charOffsetToLineInfo(1, position); return { line: oneBasedLine, offset: zeroBasedColumn + 1 }; } positionToColumnAndLineText(position) { return this.root.charOffsetToLineInfo(1, position); } getLineCount() { return this.root.lineCount(); } lineNumberToInfo(oneBasedLine) { const lineCount = this.getLineCount(); if (oneBasedLine <= lineCount) { const { position, leaf } = this.root.lineNumberToInfo(oneBasedLine, 0); return { absolutePosition: position, lineText: leaf && leaf.text }; } else { return { absolutePosition: this.root.charCount(), lineText: void 0 }; } } load(lines) { if (lines.length > 0) { const leaves = []; for (let i = 0; i < lines.length; i++) { leaves[i] = new LineLeaf(lines[i]); } this.root = LineIndex.buildTreeFromBottom(leaves); } else { this.root = new LineNode(); } } walk(rangeStart, rangeLength, walkFns) { this.root.walk(rangeStart, rangeLength, walkFns); } getText(rangeStart, rangeLength) { let accum = ""; if (rangeLength > 0 && rangeStart < this.root.charCount()) { this.walk(rangeStart, rangeLength, { goSubtree: true, done: false, leaf: (relativeStart, relativeLength, ll) => { accum = accum.concat(ll.text.substring(relativeStart, relativeStart + relativeLength)); } }); } return accum; } getLength() { return this.root.charCount(); } every(f, rangeStart, rangeEnd) { if (!rangeEnd) { rangeEnd = this.root.charCount(); } const walkFns = { goSubtree: true, done: false, leaf(relativeStart, relativeLength, ll) { if (!f(ll, relativeStart, relativeLength)) { this.done = true; } } }; this.walk(rangeStart, rangeEnd - rangeStart, walkFns); return !walkFns.done; } edit(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 { let checkText; if (this.checkEdits) { const source = this.getText(0, this.root.charCount()); checkText = source.slice(0, pos) + newText + source.slice(pos + deleteLength); } const walker = new EditWalker(); let suppressTrailingText = false; if (pos >= this.root.charCount()) { pos = this.root.charCount() - 1; const endString = this.getText(pos, 1); if (newText) { newText = endString + newText; } else { newText = endString; } deleteLength = 0; suppressTrailingText = true; } else if (deleteLength > 0) { const e = pos + deleteLength; const { zeroBasedColumn, lineText } = this.positionToColumnAndLineText(e); if (zeroBasedColumn === 0) { deleteLength += lineText.length; newText = newText ? newText + lineText : lineText; } } this.root.walk(pos, deleteLength, walker); walker.insertLines(newText, suppressTrailingText); if (this.checkEdits) { const updatedText = walker.lineIndex.getText(0, walker.lineIndex.getLength()); Debug.assert(checkText === updatedText, "buffer edit mismatch"); } return walker.lineIndex; } } static buildTreeFromBottom(nodes) { if (nodes.length < lineCollectionCapacity) { return new LineNode(nodes); } const interiorNodes = new Array(Math.ceil(nodes.length / lineCollectionCapacity)); let nodeIndex = 0; for (let i = 0; i < interiorNodes.length; i++) { const end = Math.min(nodeIndex + lineCollectionCapacity, nodes.length); interiorNodes[i] = new LineNode(nodes.slice(nodeIndex, end)); nodeIndex = end; } return this.buildTreeFromBottom(interiorNodes); } static linesFromText(text) { const lineMap = computeLineStarts(text); if (lineMap.length === 0) { return { lines: [], lineMap }; } const lines = new Array(lineMap.length); const lc = lineMap.length - 1; for (let lmi = 0; lmi < lc; lmi++) { lines[lmi] = text.substring(lineMap[lmi], lineMap[lmi + 1]); } const endText = text.substring(lineMap[lc]); if (endText.length > 0) { lines[lc] = endText; } else { lines.pop(); } return { lines, lineMap }; } }; LineNode = class { constructor(children = []) { this.children = children; this.totalChars = 0; this.totalLines = 0; if (children.length) this.updateCounts(); } isLeaf() { return false; } updateCounts() { this.totalChars = 0; this.totalLines = 0; for (const child of this.children) { this.totalChars += child.charCount(); this.totalLines += child.lineCount(); } } execWalk(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; } skipChild(relativeStart, relativeLength, childIndex, walkFns, nodeType) { if (walkFns.pre && !walkFns.done) { walkFns.pre(relativeStart, relativeLength, this.children[childIndex], this, nodeType); walkFns.goSubtree = true; } } walk(rangeStart, rangeLength, walkFns) { let childIndex = 0; let childCharCount = this.children[childIndex].charCount(); let 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; } let adjustedLength = rangeLength - (childCharCount - adjustedStart); childIndex++; const 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) { const clen = this.children.length; if (childIndex < clen - 1) { for (let 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. charOffsetToLineInfo(lineNumberAccumulator, relativePosition) { if (this.children.length === 0) { return { oneBasedLine: lineNumberAccumulator, zeroBasedColumn: relativePosition, lineText: void 0 }; } for (const child of this.children) { 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(); } } const lineCount = this.lineCount(); if (lineCount === 0) { return { oneBasedLine: 1, zeroBasedColumn: 0, lineText: void 0 }; } const 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. */ lineNumberToInfo(relativeOneBasedLine, positionAccumulator) { for (const child of this.children) { const childLineCount = child.lineCount(); if (childLineCount >= relativeOneBasedLine) { return child.isLeaf() ? { position: positionAccumulator, leaf: child } : child.lineNumberToInfo(relativeOneBasedLine, positionAccumulator); } else { relativeOneBasedLine -= childLineCount; positionAccumulator += child.charCount(); } } return { position: positionAccumulator, leaf: void 0 }; } splitAfter(childIndex) { let splitNode; const clen = this.children.length; childIndex++; const 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; } remove(child) { const childIndex = this.findChildIndex(child); const clen = this.children.length; if (childIndex < clen - 1) { for (let i = childIndex; i < clen - 1; i++) { this.children[i] = this.children[i + 1]; } } this.children.pop(); } findChildIndex(child) { const childIndex = this.children.indexOf(child); Debug.assert(childIndex !== -1); return childIndex; } insertAt(child, nodes) { let childIndex = this.findChildIndex(child); const clen = this.children.length; const nodeCount = nodes.length; if (clen < lineCollectionCapacity && childIndex === clen - 1 && nodeCount === 1) { this.add(nodes[0]); this.updateCounts(); return []; } else { const shiftNode = this.splitAfter(childIndex); let nodeIndex = 0; childIndex++; while (childIndex < lineCollectionCapacity && nodeIndex < nodeCount) { this.children[childIndex] = nodes[nodeIndex]; childIndex++; nodeIndex++; } let splitNodes = []; let splitNodeCount = 0; if (nodeIndex < nodeCount) { splitNodeCount = Math.ceil((nodeCount - nodeIndex) / lineCollectionCapacity); splitNodes = new Array(splitNodeCount); let splitNodeIndex = 0; for (let i = 0; i < splitNodeCount; i++) { splitNodes[i] = new LineNode(); } let splitNode = splitNodes[0]; while (nodeIndex < nodeCount) { splitNode.add(nodes[nodeIndex]); nodeIndex++; if (splitNode.children.length === lineCollectionCapacity) { splitNodeIndex++; splitNode = splitNodes[splitNodeIndex]; } } for (let i = splitNodes.length - 1; i >= 0; i--) { if (splitNodes[i].children.length === 0) { splitNodes.pop(); } } } if (shiftNode) { splitNodes.push(shiftNode); } this.updateCounts(); for (let i = 0; i < splitNodeCount; i++) { splitNodes[i].updateCounts(); } return splitNodes; } } // assume there is room for the item; return true if more room add(collection) { this.children.push(collection); Debug.assert(this.children.length <= lineCollectionCapacity); } charCount() { return this.totalChars; } lineCount() { return this.totalLines; } }; LineLeaf = class { constructor(text) { this.text = text; } isLeaf() { return true; } walk(rangeStart, rangeLength, walkFns) { walkFns.leaf(rangeStart, rangeLength, this); } charCount() { return this.text.length; } lineCount() { return 1; } }; } }); // src/server/_namespaces/ts.server.ts var ts_server_exports3 = {}; __export(ts_server_exports3, { ActionInvalidate: () => ActionInvalidate, ActionPackageInstalled: () => ActionPackageInstalled, ActionSet: () => ActionSet, ActionWatchTypingLocations: () => ActionWatchTypingLocations, Arguments: () => Arguments, AutoImportProviderProject: () => AutoImportProviderProject, CharRangeSection: () => CharRangeSection, CommandNames: () => CommandNames, ConfigFileDiagEvent: () => ConfigFileDiagEvent, ConfiguredProject: () => ConfiguredProject2, Errors: () => Errors, EventBeginInstallTypes: () => EventBeginInstallTypes, EventEndInstallTypes: () => EventEndInstallTypes, EventInitializationFailed: () => EventInitializationFailed, EventTypesRegistry: () => EventTypesRegistry, ExternalProject: () => ExternalProject2, GcTimer: () => GcTimer, InferredProject: () => InferredProject2, LargeFileReferencedEvent: () => LargeFileReferencedEvent, LineIndex: () => LineIndex, LineLeaf: () => LineLeaf, LineNode: () => LineNode, LogLevel: () => LogLevel2, Msg: () => Msg, OpenFileInfoTelemetryEvent: () => OpenFileInfoTelemetryEvent, Project: () => Project3, ProjectInfoTelemetryEvent: () => ProjectInfoTelemetryEvent, ProjectKind: () => ProjectKind, ProjectLanguageServiceStateEvent: () => ProjectLanguageServiceStateEvent, ProjectLoadingFinishEvent: () => ProjectLoadingFinishEvent, ProjectLoadingStartEvent: () => ProjectLoadingStartEvent, ProjectReferenceProjectLoadKind: () => ProjectReferenceProjectLoadKind, ProjectService: () => ProjectService3, ProjectsUpdatedInBackgroundEvent: () => ProjectsUpdatedInBackgroundEvent, ScriptInfo: () => ScriptInfo, ScriptVersionCache: () => ScriptVersionCache, Session: () => Session3, TextStorage: () => TextStorage, ThrottledOperations: () => ThrottledOperations, TypingsCache: () => TypingsCache, allFilesAreJsOrDts: () => allFilesAreJsOrDts, allRootFilesAreJsOrDts: () => allRootFilesAreJsOrDts, asNormalizedPath: () => asNormalizedPath, convertCompilerOptions: () => convertCompilerOptions, convertFormatOptions: () => convertFormatOptions, convertScriptKindName: () => convertScriptKindName, convertTypeAcquisition: () => convertTypeAcquisition, convertUserPreferences: () => convertUserPreferences, convertWatchOptions: () => convertWatchOptions, countEachFileTypes: () => countEachFileTypes, createInstallTypingsRequest: () => createInstallTypingsRequest, createModuleSpecifierCache: () => createModuleSpecifierCache, createNormalizedPathMap: () => createNormalizedPathMap, createPackageJsonCache: () => createPackageJsonCache, createSortedArray: () => createSortedArray2, emptyArray: () => emptyArray2, findArgument: () => findArgument, forEachResolvedProjectReferenceProject: () => forEachResolvedProjectReferenceProject, formatDiagnosticToProtocol: () => formatDiagnosticToProtocol, formatMessage: () => formatMessage2, getBaseConfigFileName: () => getBaseConfigFileName, getLocationInNewDocument: () => getLocationInNewDocument, hasArgument: () => hasArgument, hasNoTypeScriptSource: () => hasNoTypeScriptSource, indent: () => indent2, isConfigFile: () => isConfigFile, isConfiguredProject: () => isConfiguredProject, isDynamicFileName: () => isDynamicFileName, isExternalProject: () => isExternalProject, isInferredProject: () => isInferredProject, isInferredProjectName: () => isInferredProjectName, makeAutoImportProviderProjectName: () => makeAutoImportProviderProjectName, makeAuxiliaryProjectName: () => makeAuxiliaryProjectName, makeInferredProjectName: () => makeInferredProjectName, maxFileSize: () => maxFileSize, maxProgramSizeForNonTsFiles: () => maxProgramSizeForNonTsFiles, normalizedPathToPath: () => normalizedPathToPath, nowString: () => nowString, nullCancellationToken: () => nullCancellationToken, nullTypingsInstaller: () => nullTypingsInstaller, projectContainsInfoDirectly: () => projectContainsInfoDirectly, protocol: () => ts_server_protocol_exports, removeSorted: () => removeSorted, stringifyIndented: () => stringifyIndented, toEvent: () => toEvent, toNormalizedPath: () => toNormalizedPath, tryConvertScriptKindName: () => tryConvertScriptKindName, typingsInstaller: () => ts_server_typingsInstaller_exports, updateProjectIfDirty: () => updateProjectIfDirty }); var init_ts_server3 = __esm({ "src/server/_namespaces/ts.server.ts"() { "use strict"; init_ts_server(); init_ts_server2(); init_types4(); init_utilitiesPublic3(); init_utilities5(); init_ts_server_protocol(); init_scriptInfo(); init_typingsCache(); init_project(); init_editorServices(); init_moduleSpecifierCache(); init_packageJsonCache(); init_session(); init_scriptVersionCache(); } }); // src/server/_namespaces/ts.ts var ts_exports2 = {}; __export(ts_exports2, { ANONYMOUS: () => ANONYMOUS, AccessFlags: () => AccessFlags, AssertionLevel: () => AssertionLevel, AssignmentDeclarationKind: () => AssignmentDeclarationKind, AssignmentKind: () => AssignmentKind, Associativity: () => Associativity, BreakpointResolver: () => ts_BreakpointResolver_exports, BuilderFileEmit: () => BuilderFileEmit, BuilderProgramKind: () => BuilderProgramKind, BuilderState: () => BuilderState, BundleFileSectionKind: () => BundleFileSectionKind, CallHierarchy: () => ts_CallHierarchy_exports, CharacterCodes: () => CharacterCodes, CheckFlags: () => CheckFlags, CheckMode: () => CheckMode, ClassificationType: () => ClassificationType, ClassificationTypeNames: () => ClassificationTypeNames, CommentDirectiveType: () => CommentDirectiveType, Comparison: () => Comparison, CompletionInfoFlags: () => CompletionInfoFlags, CompletionTriggerKind: () => CompletionTriggerKind, Completions: () => ts_Completions_exports, ConfigFileProgramReloadLevel: () => ConfigFileProgramReloadLevel, 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: () => ts_FindAllReferences_exports, FlattenLevel: () => FlattenLevel, FlowFlags: () => FlowFlags, ForegroundColorEscapeSequences: () => ForegroundColorEscapeSequences, FunctionFlags: () => FunctionFlags, GeneratedIdentifierFlags: () => GeneratedIdentifierFlags, GetLiteralTextFlags: () => GetLiteralTextFlags, GoToDefinition: () => ts_GoToDefinition_exports, HighlightSpanKind: () => HighlightSpanKind, ImportKind: () => ImportKind, ImportsNotUsedAsValues: () => ImportsNotUsedAsValues, IndentStyle: () => IndentStyle, IndexFlags: () => IndexFlags, IndexKind: () => IndexKind, InferenceFlags: () => InferenceFlags, InferencePriority: () => InferencePriority, InlayHintKind: () => InlayHintKind, InlayHints: () => ts_InlayHints_exports, InternalEmitFlags: () => InternalEmitFlags, InternalSymbolName: () => InternalSymbolName, InvalidatedProjectKind: () => InvalidatedProjectKind, JsDoc: () => ts_JsDoc_exports, JsTyping: () => ts_JsTyping_exports, 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: () => ts_NavigateTo_exports, NavigationBar: () => ts_NavigationBar_exports, NewLineKind: () => NewLineKind, NodeBuilderFlags: () => NodeBuilderFlags, NodeCheckFlags: () => NodeCheckFlags, NodeFactoryFlags: () => NodeFactoryFlags, NodeFlags: () => NodeFlags, NodeResolutionFeatures: () => NodeResolutionFeatures, ObjectFlags: () => ObjectFlags, OperationCanceledException: () => OperationCanceledException, OperatorPrecedence: () => OperatorPrecedence, OrganizeImports: () => ts_OrganizeImports_exports, OrganizeImportsMode: () => OrganizeImportsMode, OuterExpressionKinds: () => OuterExpressionKinds, OutliningElementsCollector: () => ts_OutliningElementsCollector_exports, 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: () => ts_Rename_exports, ScriptElementKind: () => ScriptElementKind, ScriptElementKindModifier: () => ScriptElementKindModifier, ScriptKind: () => ScriptKind, ScriptSnapshot: () => ScriptSnapshot, ScriptTarget: () => ScriptTarget, SemanticClassificationFormat: () => SemanticClassificationFormat, SemanticMeaning: () => SemanticMeaning, SemicolonPreference: () => SemicolonPreference, SignatureCheckMode: () => SignatureCheckMode, SignatureFlags: () => SignatureFlags, SignatureHelp: () => ts_SignatureHelp_exports, SignatureKind: () => SignatureKind, SmartSelectionRange: () => ts_SmartSelectionRange_exports, SnippetKind: () => SnippetKind, SortKind: () => SortKind, StructureIsReused: () => StructureIsReused, SymbolAccessibility: () => SymbolAccessibility, SymbolDisplay: () => ts_SymbolDisplay_exports, 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, 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, classOrConstructorParameterIsDecorated: () => classOrConstructorParameterIsDecorated, classPrivateFieldGetHelper: () => classPrivateFieldGetHelper, classPrivateFieldInHelper: () => classPrivateFieldInHelper, classPrivateFieldSetHelper: () => classPrivateFieldSetHelper, classicNameResolver: () => classicNameResolver, classifier: () => ts_classifier_exports, cleanExtendedConfigCache: () => cleanExtendedConfigCache, clear: () => clear, clearMap: () => clearMap, clearSharedExtendedConfigFileWatcher: () => clearSharedExtendedConfigFileWatcher, climbPastPropertyAccess: () => climbPastPropertyAccess, climbPastPropertyOrElementAccess: () => climbPastPropertyOrElementAccess, clone: () => clone, cloneCompilerOptions: () => cloneCompilerOptions, closeFileWatcher: () => closeFileWatcher, closeFileWatcherOf: () => closeFileWatcherOf, codefix: () => ts_codefix_exports, 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, 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: () => createWatchCompilerHost2, 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, 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, findSuperStatementIndex: () => findSuperStatementIndex, 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: () => ts_formatting_exports, 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, 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, getContainerNode: () => getContainerNode, getContainingClass: () => getContainingClass, 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: () => getDefaultCompilerOptions2, 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, getEnclosingBlockScopeContainer: () => getEnclosingBlockScopeContainer, 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, 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, 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: () => isBuilderProgram2, 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, isClassOrTypeElement: () => isClassOrTypeElement, isClassStaticBlockDeclaration: () => isClassStaticBlockDeclaration, 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, 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, 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, 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, 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, isVarConst: () => isVarConst, 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: () => ts_moduleSpecifiers_exports, 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: () => ts_performance_exports, 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: () => ts_refactor_exports, 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: () => ts_server_exports3, 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: () => ts_textChanges_exports, 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, 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: () => tryGetExtensionFromPath2, 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: () => visitNodes2, 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 }); var init_ts7 = __esm({ "src/server/_namespaces/ts.ts"() { "use strict"; init_ts2(); init_ts3(); init_ts4(); init_ts5(); init_ts_server3(); } }); // src/tsserverlibrary/_namespaces/ts.server.ts var ts_server_exports4 = {}; __export(ts_server_exports4, { ActionInvalidate: () => ActionInvalidate, ActionPackageInstalled: () => ActionPackageInstalled, ActionSet: () => ActionSet, ActionWatchTypingLocations: () => ActionWatchTypingLocations, Arguments: () => Arguments, AutoImportProviderProject: () => AutoImportProviderProject, CharRangeSection: () => CharRangeSection, CommandNames: () => CommandNames, ConfigFileDiagEvent: () => ConfigFileDiagEvent, ConfiguredProject: () => ConfiguredProject2, Errors: () => Errors, EventBeginInstallTypes: () => EventBeginInstallTypes, EventEndInstallTypes: () => EventEndInstallTypes, EventInitializationFailed: () => EventInitializationFailed, EventTypesRegistry: () => EventTypesRegistry, ExternalProject: () => ExternalProject2, GcTimer: () => GcTimer, InferredProject: () => InferredProject2, LargeFileReferencedEvent: () => LargeFileReferencedEvent, LineIndex: () => LineIndex, LineLeaf: () => LineLeaf, LineNode: () => LineNode, LogLevel: () => LogLevel2, Msg: () => Msg, OpenFileInfoTelemetryEvent: () => OpenFileInfoTelemetryEvent, Project: () => Project3, ProjectInfoTelemetryEvent: () => ProjectInfoTelemetryEvent, ProjectKind: () => ProjectKind, ProjectLanguageServiceStateEvent: () => ProjectLanguageServiceStateEvent, ProjectLoadingFinishEvent: () => ProjectLoadingFinishEvent, ProjectLoadingStartEvent: () => ProjectLoadingStartEvent, ProjectReferenceProjectLoadKind: () => ProjectReferenceProjectLoadKind, ProjectService: () => ProjectService3, ProjectsUpdatedInBackgroundEvent: () => ProjectsUpdatedInBackgroundEvent, ScriptInfo: () => ScriptInfo, ScriptVersionCache: () => ScriptVersionCache, Session: () => Session3, TextStorage: () => TextStorage, ThrottledOperations: () => ThrottledOperations, TypingsCache: () => TypingsCache, allFilesAreJsOrDts: () => allFilesAreJsOrDts, allRootFilesAreJsOrDts: () => allRootFilesAreJsOrDts, asNormalizedPath: () => asNormalizedPath, convertCompilerOptions: () => convertCompilerOptions, convertFormatOptions: () => convertFormatOptions, convertScriptKindName: () => convertScriptKindName, convertTypeAcquisition: () => convertTypeAcquisition, convertUserPreferences: () => convertUserPreferences, convertWatchOptions: () => convertWatchOptions, countEachFileTypes: () => countEachFileTypes, createInstallTypingsRequest: () => createInstallTypingsRequest, createModuleSpecifierCache: () => createModuleSpecifierCache, createNormalizedPathMap: () => createNormalizedPathMap, createPackageJsonCache: () => createPackageJsonCache, createSortedArray: () => createSortedArray2, emptyArray: () => emptyArray2, findArgument: () => findArgument, forEachResolvedProjectReferenceProject: () => forEachResolvedProjectReferenceProject, formatDiagnosticToProtocol: () => formatDiagnosticToProtocol, formatMessage: () => formatMessage2, getBaseConfigFileName: () => getBaseConfigFileName, getLocationInNewDocument: () => getLocationInNewDocument, hasArgument: () => hasArgument, hasNoTypeScriptSource: () => hasNoTypeScriptSource, indent: () => indent2, isConfigFile: () => isConfigFile, isConfiguredProject: () => isConfiguredProject, isDynamicFileName: () => isDynamicFileName, isExternalProject: () => isExternalProject, isInferredProject: () => isInferredProject, isInferredProjectName: () => isInferredProjectName, makeAutoImportProviderProjectName: () => makeAutoImportProviderProjectName, makeAuxiliaryProjectName: () => makeAuxiliaryProjectName, makeInferredProjectName: () => makeInferredProjectName, maxFileSize: () => maxFileSize, maxProgramSizeForNonTsFiles: () => maxProgramSizeForNonTsFiles, normalizedPathToPath: () => normalizedPathToPath, nowString: () => nowString, nullCancellationToken: () => nullCancellationToken, nullTypingsInstaller: () => nullTypingsInstaller, projectContainsInfoDirectly: () => projectContainsInfoDirectly, protocol: () => ts_server_protocol_exports, removeSorted: () => removeSorted, stringifyIndented: () => stringifyIndented, toEvent: () => toEvent, toNormalizedPath: () => toNormalizedPath, tryConvertScriptKindName: () => tryConvertScriptKindName, typingsInstaller: () => ts_server_typingsInstaller_exports, updateProjectIfDirty: () => updateProjectIfDirty }); var init_ts_server4 = __esm({ "src/tsserverlibrary/_namespaces/ts.server.ts"() { "use strict"; init_ts_server(); init_ts_server3(); } }); // src/tsserverlibrary/_namespaces/ts.ts var ts_exports3 = {}; __export(ts_exports3, { ANONYMOUS: () => ANONYMOUS, AccessFlags: () => AccessFlags, AssertionLevel: () => AssertionLevel, AssignmentDeclarationKind: () => AssignmentDeclarationKind, AssignmentKind: () => AssignmentKind, Associativity: () => Associativity, BreakpointResolver: () => ts_BreakpointResolver_exports, BuilderFileEmit: () => BuilderFileEmit, BuilderProgramKind: () => BuilderProgramKind, BuilderState: () => BuilderState, BundleFileSectionKind: () => BundleFileSectionKind, CallHierarchy: () => ts_CallHierarchy_exports, CharacterCodes: () => CharacterCodes, CheckFlags: () => CheckFlags, CheckMode: () => CheckMode, ClassificationType: () => ClassificationType, ClassificationTypeNames: () => ClassificationTypeNames, CommentDirectiveType: () => CommentDirectiveType, Comparison: () => Comparison, CompletionInfoFlags: () => CompletionInfoFlags, CompletionTriggerKind: () => CompletionTriggerKind, Completions: () => ts_Completions_exports, ConfigFileProgramReloadLevel: () => ConfigFileProgramReloadLevel, 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: () => ts_FindAllReferences_exports, FlattenLevel: () => FlattenLevel, FlowFlags: () => FlowFlags, ForegroundColorEscapeSequences: () => ForegroundColorEscapeSequences, FunctionFlags: () => FunctionFlags, GeneratedIdentifierFlags: () => GeneratedIdentifierFlags, GetLiteralTextFlags: () => GetLiteralTextFlags, GoToDefinition: () => ts_GoToDefinition_exports, HighlightSpanKind: () => HighlightSpanKind, ImportKind: () => ImportKind, ImportsNotUsedAsValues: () => ImportsNotUsedAsValues, IndentStyle: () => IndentStyle, IndexFlags: () => IndexFlags, IndexKind: () => IndexKind, InferenceFlags: () => InferenceFlags, InferencePriority: () => InferencePriority, InlayHintKind: () => InlayHintKind, InlayHints: () => ts_InlayHints_exports, InternalEmitFlags: () => InternalEmitFlags, InternalSymbolName: () => InternalSymbolName, InvalidatedProjectKind: () => InvalidatedProjectKind, JsDoc: () => ts_JsDoc_exports, JsTyping: () => ts_JsTyping_exports, 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: () => ts_NavigateTo_exports, NavigationBar: () => ts_NavigationBar_exports, NewLineKind: () => NewLineKind, NodeBuilderFlags: () => NodeBuilderFlags, NodeCheckFlags: () => NodeCheckFlags, NodeFactoryFlags: () => NodeFactoryFlags, NodeFlags: () => NodeFlags, NodeResolutionFeatures: () => NodeResolutionFeatures, ObjectFlags: () => ObjectFlags, OperationCanceledException: () => OperationCanceledException, OperatorPrecedence: () => OperatorPrecedence, OrganizeImports: () => ts_OrganizeImports_exports, OrganizeImportsMode: () => OrganizeImportsMode, OuterExpressionKinds: () => OuterExpressionKinds, OutliningElementsCollector: () => ts_OutliningElementsCollector_exports, 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: () => ts_Rename_exports, ScriptElementKind: () => ScriptElementKind, ScriptElementKindModifier: () => ScriptElementKindModifier, ScriptKind: () => ScriptKind, ScriptSnapshot: () => ScriptSnapshot, ScriptTarget: () => ScriptTarget, SemanticClassificationFormat: () => SemanticClassificationFormat, SemanticMeaning: () => SemanticMeaning, SemicolonPreference: () => SemicolonPreference, SignatureCheckMode: () => SignatureCheckMode, SignatureFlags: () => SignatureFlags, SignatureHelp: () => ts_SignatureHelp_exports, SignatureKind: () => SignatureKind, SmartSelectionRange: () => ts_SmartSelectionRange_exports, SnippetKind: () => SnippetKind, SortKind: () => SortKind, StructureIsReused: () => StructureIsReused, SymbolAccessibility: () => SymbolAccessibility, SymbolDisplay: () => ts_SymbolDisplay_exports, 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, 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, classOrConstructorParameterIsDecorated: () => classOrConstructorParameterIsDecorated, classPrivateFieldGetHelper: () => classPrivateFieldGetHelper, classPrivateFieldInHelper: () => classPrivateFieldInHelper, classPrivateFieldSetHelper: () => classPrivateFieldSetHelper, classicNameResolver: () => classicNameResolver, classifier: () => ts_classifier_exports, cleanExtendedConfigCache: () => cleanExtendedConfigCache, clear: () => clear, clearMap: () => clearMap, clearSharedExtendedConfigFileWatcher: () => clearSharedExtendedConfigFileWatcher, climbPastPropertyAccess: () => climbPastPropertyAccess, climbPastPropertyOrElementAccess: () => climbPastPropertyOrElementAccess, clone: () => clone, cloneCompilerOptions: () => cloneCompilerOptions, closeFileWatcher: () => closeFileWatcher, closeFileWatcherOf: () => closeFileWatcherOf, codefix: () => ts_codefix_exports, 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, 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: () => createWatchCompilerHost2, 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, 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, findSuperStatementIndex: () => findSuperStatementIndex, 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: () => ts_formatting_exports, 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, 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, getContainerNode: () => getContainerNode, getContainingClass: () => getContainingClass, 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: () => getDefaultCompilerOptions2, 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, getEnclosingBlockScopeContainer: () => getEnclosingBlockScopeContainer, 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, 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, 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: () => isBuilderProgram2, 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, isClassOrTypeElement: () => isClassOrTypeElement, isClassStaticBlockDeclaration: () => isClassStaticBlockDeclaration, 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, 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, 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, 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, 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, isVarConst: () => isVarConst, 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: () => ts_moduleSpecifiers_exports, 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: () => ts_performance_exports, 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: () => ts_refactor_exports, 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: () => ts_server_exports4, 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: () => ts_textChanges_exports, 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, 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: () => tryGetExtensionFromPath2, 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: () => visitNodes2, 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 }); var init_ts8 = __esm({ "src/tsserverlibrary/_namespaces/ts.ts"() { "use strict"; init_ts2(); init_ts3(); init_ts4(); init_ts7(); init_ts_server4(); } }); // src/tsserverlibrary/tsserverlibrary.ts var require_tsserverlibrary = __commonJS({ "src/tsserverlibrary/tsserverlibrary.ts"(exports, module2) { init_ts8(); module2.exports = ts_exports3; } }); return require_tsserverlibrary(); })(); if (typeof module !== "undefined" && module.exports) { module.exports = ts; } //# sourceMappingURL=tsserverlibrary.js.map